1. 概述
clean的物件是欄位,效果是在當前 def 的計算中忽略該欄位上的過濾效果。
文法 | CLEAN(欄位1,欄位2,欄位3....) /CLEAN("ALL") | 當前 分析函式 計算中忽略指定欄位生成的所有過濾效果 |
---|---|---|
參數 | 欄位1,欄位2,欄位3.... | 需要忽略過濾效果的欄位
|
2. 注意事項
CLEAN函式只能用於 def/def_add/def_sub 中,作為一個獨立的過濾條件。例如: DEF(SUM_AGG(指標),[省份,城市],[CLEAN(城市)])
3. 計算邏輯
3.1 計算範圍
1)clean(欄位1,欄位2,欄位3....)
clean函式將清除掉欄位所做的過濾。範例如下:
範圍 | 過濾條件 | 組件的計算欄位 | 結果 |
---|---|---|---|
組件 | 在過濾器新增「城市」欄位
| def(sum_agg(銷售額),[城市],[clean(城市)]) | 忽略城市欄位的所有過濾條件 |
儀表板 | 正文下拉過濾:城市=蘇州、無錫、常州 |
2)clean(all)
當前 分析函式 運算的結果不受到任何過濾效果影響(不包括儀表板/組件外的過濾,如權限過濾和排程管理的過濾)
3)總結
因此,CLEAN函式作用範圍如下:
範圍 | 欄位過濾 | CLEAN(欄位1,欄位2,欄位3....) | CLEAN("ALL") |
---|---|---|---|
組件 |
| 忽略欄位過濾效果 | 忽略分析函式所有欄位過濾效果 |
儀表板 |
|
| 忽略分析函式所有欄位過濾效果 |
3.2 在DEF計算中的邏輯
1)clean與內層def和同層def過濾條件的關係
因為def中的過濾僅影響當前def的計算,因此clean不會清除內層和外層def的過濾條件
例如:
層級 | 計算欄位 | 公式 |
---|---|---|
1 | A | def(sum(),[],銷售額>100) |
2 | B | def(sum(A),[],[clean(銷售額)]) |
3 | C | def(sum(B),[],[銷售額<300]) |
此時,clean 不會對1、3層級的銷售額過濾產生影響。
2)clean與同層的過濾處於平級的狀態
clean與同層的過濾處於平級的狀態,即clean會把上面層級的過濾清掉,同層的過濾正常進行。
例如,def(sum(),[],[clean(日期),日期=“2022”]),過濾器綁定日期過濾 ,此時def使用日期=2022進行計算。
4. 案例應用
4.1 範例
範例資料:產品銷售情況.xlsx
1)上傳資料並分析產品銷售情況。拖入「訂單金額」修改匯總方式為「最大值」得到單筆訂單銷售額最大值。如下圖所示:
2)只想分析 7 月的訂單銷售資料。在過濾器中拖入「訂單日期」,年月過濾,選擇「2022年7月」。如下圖所示:
此時,我們希望增加一欄歷史訂單單筆最大金額和7月的資料進行對比。新增計算欄位「歷史單筆訂單最大金額」。如下圖所示:
場景 | 公式 | 描述 |
---|---|---|
計算結果不會受到訂單日期過濾的影響 | CLEAN(訂單日期) | 組件過濾器、儀表板過濾組件對「訂單日期」過濾都不會變化計算結果 |
求產品訂單金額的歷史最大值 | DEF_ADD(MAX_AGG(訂單金額}),[],[CLEAN(訂單日期)]) | 維度:產品 指標:訂單金額 條件:忽略訂單日期過濾條件 |
組件中的如下圖所示:
儀表板中效果如下圖所示:
4.2 更多範例
公式 | 結果 | 備註 |
---|---|---|
DEF(SUM_AGG(指標),[省份,城市],[CLEAN(城市)]) | 在DEF計算中忽略「城市」欄位產生的所有過濾效果 | 忽略城市欄位在過濾器/聯動/鑽取/跳轉/過濾組件產生的過濾 |
DEF_ADD(SUM_AGG(指標),[維度1,維度2,...],[CLEAN("ALL")]) | 在DEF_ADD計算中忽略全部的過濾效果 | 忽略所有欄位在過濾器/聯動/鑽取/跳轉/過濾組件產生的過濾 |