1. 概述
1.1 版本
FineBI 版本 | 功能變動 |
---|---|
6.0 | - |
6.0.13 | def_add合計行邏輯優化:合計-自動計算時,使用的是當前合計檢視表所使用到的連接維度。 |
1.2 簡介
DEF_ADD 函式使用「指定維度」 「分析區域中的維度」,計算聚合指標值。
與 DEF 函式相比,DEF_ADD 加入了「分析區域中的維度」,所以「分析區域中維度」的增刪會影響函式結果。
文法 | DEF_ADD(聚合指標, [維度1,維度2,...], [過濾條件1, 過濾條件2,...]) | 滿足過濾條件並按【分析區域中的維度 [維度1,維度2]】對指標進行計算 |
---|---|---|
參數1 | 聚合指標 | 1)指標只允許有一個,且不可為空 2)指標支援巢。即可以是任意函式匯出的指標 注:當指標為明細計算指標時,報錯提示「分析函式中不支援明細計算指標」 |
參數2 | 維度 | 1)函式內指定的維度 2)當只有一個維度參數時,可以不加 [ ] |
參數3 | 過濾條件 | 1)過濾條件可為空,當過濾條件為空時,執行指標的聚合運算沒有過濾參與計算 2)過濾條件支援明細級別過濾,支援巢指標的過濾(def函式匯出的指標),不支援聚合函式作為過濾條件 3)支援設定多個過濾條件,相同層級間的過濾以「且」執行 4)當只有一個過濾條件時,可以不加 [ ] 5)當指定維度為空時,格式為 DEF_ADD(聚合指標,[],[過濾條件1, 過濾條件2,...]) |
注:DEF_ADD 函式不支援匯出為維度欄位。
2. 簡單範例
先用幾個小範例,瞭解 DEF_ADD 的寫法和作用。
我在分析區域拖入了「省份」欄位,如下圖所示:
場景 | 公式 | 描述 |
---|---|---|
分析區域拖入維度欄位「省份」 | ||
想了解各個省份的銷售額 | DEF_ADD(SUM_AGG(銷售額),[]) |
求各個省份的銷售額 |
各個省份下每個客戶的銷售額 (第 3 節實操) | DEF_ADD(SUM_AGG(銷售額),[客戶名稱]) |
獲得不同省份下,每個客戶的銷售額 |
看到這裏大家或許會困惑,這和 DEF 有什麼差別呢,DEF_ADD 能實現的 DEF 都能實現,甚至更全面。
這裏介紹一下,相對於 DEF 來說,DEF_ADD 的優勢在於:它可以透過拖曳靈活調整維度,進而快速的獲得不同的分析結果。
若上面這個例子,我想求「各個地區的銷售額」和「各個地區下每個客戶的銷售額」:
● DEF_ADD 函式的話,我們僅僅需要將分析區域的維度欄位從「省份」切換為「地區」
● DEF 函式則需要更改函式的書寫:DEF(SUM_AGG(銷售額),[地區])、DEF(SUM_AGG(銷售額),[地區,客戶名稱])
分析是個探索的程式,我們需要不斷的去切換維度更改分析角度發現問題,這時候使用 DEF_ADD 可以幫助你提高分析效率。
怎麼樣,現在瞭解什麼情況下該使用 DEF_ADD 了吧。
3. 實操-求不同省份的客均銷售額
我們可以很輕鬆的計算出銷售額總和,如何我們要計算出每個省份的客均銷售額,觀察客均與總銷售額的差異該怎麼辦呢?
預期效果如下圖所示:
1)獲取範例資料 超市銷售資料.xlsx
將下載下來的範例資料上傳至主題,如下圖所示:
2)新增計算欄位,計算每個客戶的銷售額。
由於我們要計算省份的客均銷售額,所以分析區域中需要拖入「省份」維度。如下圖所示:
場景 | 公式 | 描述 |
---|---|---|
求不同省份下的每個客戶的銷售額 | DEF_ADD(SUM_AGG(銷售額),[客戶名稱]) |
對「省份」下每個客戶的銷售額求和 |
3)將「客戶的銷售額」拖入分析區域,將聚合方式更改為求「平均」。就可以求出每個省份下,客均銷售額。如下圖所示:
4)將「銷售額」欄位也拖入分析區域,可以觀察客均銷售額與總銷售額的差異。如下圖所示:
我們觀察到:福建的總銷售額不高,但是客均銷售額比較突出。
到此,便完成了本次分析。