PowerBI實用技巧:案例一(動態切換坐標軸列值,例如交叉表頭、列,圖表坐標軸等)


前段時間工作上面有一個需求,用戶想要自己通過切片器來控制坐標軸的維度,那么這遍文章我就主要是要介紹一下如何制作動態的坐標軸。

      這次分析的數據是銷售的最低價格,分別從周日期、天日期和promotions三個維度進行分析,要實現的效果是,如果選擇了WEEK,那坐標軸就是周的名稱,展示周的最低銷售價格,如果選擇了DAY,那坐標軸則是天的維度,展示每天的最低銷售價格。(這里面有個划重點的需要,因為需要用交叉表的方式展示,所以表頭還有一個promotions名稱需要一並展示出來)

第一步:

Axis dimension Table =

VAR TABLE1=SELECTCOLUMNS(ADDCOLUMNS('T_SALES',"Index","Weekly","PromotionEN",T_SALES[PROMOTION]),"Index","Weekly","Promotion",'T_SALES'[PROMOTION],"Index detail",T_SALES[WEEKLY])

VAR TABLE2=SELECTCOLUMNS(ADDCOLUMNS('T_SALES',"Index","Day","PromotionEN",T_SALES[PROMOTION]),"index","Day","Promotion",'T_SALES'[PROMOTION],"Index detail",'T_SALES'[DATE])

RETURN UNION(TABLE1,TABLE2)

        ADDCOLUMNS函數和SELECTCOLUMNS都是表函數,它們的第一個參數是表,返回的也是一張表,這是理解這兩個函數的關鍵。

       這個度量值主要是ADDCOLUMNS函數與SELECTCOLUMNS函數的密切配合,先用ADDCOLUMNS函數在提取的維度表上添加一列該維度的屬性,返回帶屬性值的表;然后用SELECTCOLUMNS命名字段名,返回兩個相同字段名的表,最后用UNION把兩個表合並成一張表。這里面要注意的是promotion這個字段,因為不管是篩選日期還是周的時候,這個指標維度都需要展示出來,所以我們在做Union的時候需要都寫出來。

       我們創建出來的表效果如下:

                                            

第二步:

創建我們需要展示的度量值

MINPRICE =

IF(HASONEFILTER('Axis dimension Table'[Index]),

SWITCH(TRUE(),

SELECTEDVALUE('Axis dimension Table'[Index])="Weekly",CALCULATE([MIN_PRICE],TREATAS(VALUES('Axis dimension Table'[Index detail]),'T_SALES'[WEEKLY]),TREATAS(VALUES('Axis dimension Table'[Promotion]),'T_SALES'[PROMOTION])),

SELECTEDVALUE('Axis dimension Table'[Index])="Day",CALCULATE([MIN_PRICE],TREATAS(VALUES('Axis dimension Table'[Index detail]),T_SALES[DATE]),TREATAS(VALUES('Axis dimension Table'[Promotion]),T_SALES[PROMOTION]))),

error("Single Select"))

最終效果如下

 

 

總結:

TREATAS:

1.維度表或事實表之間沒有可以單獨關聯的列;
2.出現多對多或其他無法使用直接的方法關聯的情況
3.數據模型非常復雜時,通過建立虛擬關系以減少對表格之間物理連接的依賴
(根據Marco的說法:額外的物理關系可能會在過濾器傳播到其他表時產生某種副作用)

將表表達式的結果作為篩選器應用於無關表中的列,表之間不存在關系時,最適合使用。
————————————————
版權聲明:本文為CSDN博主「cheryl丸子」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hfjwanzi/article/details/103521995


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM