全部產品
Search
文件中心

:建立計算欄位

更新時間:Jun 30, 2024

當您分析的資料並不能直接從資料表中擷取,而需要基於未經處理資料進行加工時,可以建立計算欄位。

前提條件

您已建立資料集,請參見建立並管理資料集

背景資訊

Quick BI支援豐富的欄位計算,協助您靈活的處理資料:

  • 彙總

    例如通過客戶名稱統計客戶數:COUNT(DISTINCT [客戶名稱])

  • 四則運算

    例如計算客單價:[成交金額] / [客戶量]

  • 字元的分割與合并

    例如將省份和城市拼接:CONCAT([省份], [城市])

  • 複雜分組

    例如將滿足一定條件的客戶等級定義為VIP客戶:CASE WHEN [成交金額]>1000 AND [成交筆數]>5 THEN 'VIP' ELSE '普通' END

配置方式

  1. 在資料預覽頁面,單擊建立計算欄位

    建立計算欄位

  2. 建立計算欄位頁面,配置參數後,單擊確定

    1. 輸入欄位名稱。

    2. 點擊引用函數點擊引用欄位,編輯欄位運算式。其中引用的函數分為常用函數LOD函數,LOD函數具體使用介紹請參見LOD函數

      在編輯運算式時,您需要關注以下幾點:

      • 您也可以在運算式編輯框輸入[喚出列表來插入度量欄位名稱。

      • 運算式中輸入的括弧均為半形括弧。即,在英文IME中輸入的括弧。

      • 函數請使用各個資料來源支援的函數。

        資料來源支援的函數可查看配置面板右側函數列表,或查詢該資料來源類型支援的函數。

      常見的欄位運算式樣本請參見情境舉例

    3. 選擇資料類型欄位類型後,單擊確定

      建立計算欄位

      當資料類型選擇度量時,支援設定數值格式化為整數、保留1位小數、保留2位小數、百分比、百分比1位小數、百分比2位小數、自訂和手動輸入。

      其中手動輸入顯示格式,例如#,##0.00%,只能由大小寫字母數字和_#,.%組成,長度不超過50個字元,具體使用方法請參考Excel自訂格式文法。

      image.png

      建立的計算欄位也可以直接被引用再做二次計算,滿足您複雜計算的情境。

      例如,利潤金額 = 訂單金額 - 成本金額利潤率 = 利潤金額 / 訂單金額引用的計算欄位_413

情境舉例

  • 彙總函式

    • 求和:SUM([欄位])

    • 計數:COUNT([欄位])

    • 計數去重:COUNT(DISTINCT [欄位])

    • 求平均值:AVG([欄位])

    配置了彙總計算的計算欄位,將根據儀表板中配置的維度自動進行彙總運算。

  • 四則運算

    • 支援加減乘除運算

    • 例如從訂單明細表計算客單價:SUM([成交金額] )/ COUNT(DISTINCT [客戶名稱])

      說明

      如果分母可能為0,為避免計算錯誤,請在計算欄位處理。

      CASE 
      WHEN [客戶名稱] is null THEN null 
      ELSE SUM([成交金額] )/COUNT(DISTINCT [客戶名稱]) 
      END
  • 複雜的分組情境

    對維度進行分組的情境,簡單的單欄位分組可以支援使用分組維度功能,當您需要針對多個欄位組合條件後分組,此時可以用CASE WHEN函數。例如,

    CASE 
    WHEN [成交金額]>5000 AND [成交筆數]>40 THEN 'VVIP' 
    WHEN [成交金額]>1000 AND [成交筆數]>5 THEN 'VIP' 
    ELSE '普通' END

    客戶欄位

  • 字元拼接

    假設資料表中分別有省份、城市2個欄位,您可以使用字串拼接函數,將省份城市合并到一個欄位中。

    CONCAT(a, b, c, d) :將需要合并的欄位加入括弧中,英文逗號分隔。如果合并的時候多列之間希望增加分隔字元,可以分隔字元加英文單引號。

    例如, CONCAT([省份],'-', [城市])字元拼接

  • 字串處理

    可以使用字串函數,對文本進行處理。

    不同資料庫函數不同導致字串處理方式有所差異,本文以MySQL函數舉例。

    • 字元截取:

      SUBSTRING([客戶名稱],1,1):[客戶名稱]欄位,從第1個字元開始,取1個字元。

      SUBSTRING([欄位]:開始位置,截取字串長度。字元截取

    • 尋找一個字串中另一個字串的位置:

      INSTR([客戶名稱],'東'): 尋找[客戶名稱]中是否含有‘東’字,如果有,返回位置,如果沒有,返回0。字串位置

  • 日期時間處理等

    Quick BI針對日期和時間欄位自動拆解成多個時間顆粒度,並且可以自訂顯示格式,已經可以滿足很多日期和時間顆粒度和格式處理相關的情境。

    除此之外,可以使用資料庫日期相關函數進行資料加工,可在函數列表搜尋DATE搜尋到相關的函數。

    例如:不同資料庫函數不同導致日期時間處理方式有所差異,本文以MySQL函數舉例。

    • 當前日期:CURRENT_DATE

    • 入職天數: DATEDIFF(CURRENT_DATE, [入職日期]),返回入職日期距離今天的天數

    • 到期日:ADDDATE([付款日期], 365),返回付款日期後365天的日期

  • LOD函數詳細資訊層級計算

    如果分析過程中需要添加一個維度,其明細程度高於或者低於已有視圖的可視化明細程度,但又不希望改變現有圖形展示內容,就可採用詳細資訊層級運算式功能。例如:

    • 計算每個地區的銷售額總和:lod_fixed{[地區]:SUM([訂單金額])}

      image..png

    • 分析客戶複購情況:lod_fixed{[使用者id]:count(distinct([訂單id]))}

      image..png

      詳細請參見LOD函數