關于占比,之前有篇文章(利用ALL和ALLSELECTED靈活計算占比)詳細介紹了各種情況下占比的度量值。
經星友咨詢,還有一種情況沒有介紹,實際工作中會經常用到的情形是:父級字段顯示該層級值占總體的比例,而打開該層級,顯示子級各明細項占該層級值的占比。
仍然用占比文章中的示例,直接來看一下效果。
當處于産品類别層級,顯示類别占在總體的比例,
而打開類别,産品明細顯示占該類别的比例,
其實單獨計算産品明細占類别的比例,以及類别占總體的比例,在占比那篇文章都介紹過,現在隻是需要把這兩種情況合并在一起就行了。
合并在一起,主要是需要判斷當前上下文是類别還是産品名稱,這就要用到一個新函數:ISINSCOPE。
這個函數直譯過來的意思就是:否在範圍内,官方釋義為:當指定的列是級别層次結構中的級别時,返回true。
直接給出實現上述效果的DAX寫法:
占比 層級 = SWITCH (TRUE (), ISINSCOPE ('産品'[産品名稱]), DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('産品'[産品名稱]))), ISINSCOPE ('産品'[産品類别]), DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('産品'[産品類别]))), DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('産品'[産品名稱]))) )
通過ISINSCOPE來判斷當前上下文是産品名稱還是産品類别,分别計算不同的占比,并利用SWITCH函數區分不同的情況返回對應的數據。
因為利用了ALLSELECTED函數,這個度量值也是可以根據外部的篩選情況靈活返回對應的占比數據,
本質上依然是占比文章中利用ALL和ALLSELECTED函數和參數的變化來計算占比,隻是多了一個層級的判斷而已。
這兩篇文章結合起來,細細把這幾個度量值琢磨透徹,基本沒有什麼占比可以難倒你了。
如果你剛開始接觸PowerBI,可在微信公衆号後台回複"PowerBI",獲取《七天入門Power BI》電子書,幫你快速提升工作效率。
如果文章對你有幫助,别忘了點贊轉發哦。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!