最近事情比較多,學習的速度也慢了下來偏窝,慚愧。
白茶對近一個月所學的DAX進行了一次梳理武学,做出了一個動態(tài)多維度的帕累托圖祭往,效果如下。
這個動圖包含了最近所學的相關(guān)DAX函數(shù)火窒,那么是如何實現(xiàn)的呢硼补?
這是本次,白茶所使用的一份示例數(shù)據(jù)熏矿,可以說是白茶使用頻率最高的一份樣例了已骇。導入PowerBI中,系統(tǒng)會自動匹配模型關(guān)系票编,如下圖:
這是前期的準備工作褪储,接下來開始對近期所學的相關(guān)知識進行梳理。
一慧域、編寫基本的銷售金額鲤竹、成本、利潤代碼昔榴,如下:
銷售金額代碼:
銷售金額 =
SUMX ( '銷售明細', '銷售明細'[銷售數(shù)量] * RELATED ( '產(chǎn)品表'[銷售價] ) )
成本代碼:
銷售成本 =
SUMX ( '銷售明細', '銷售明細'[銷售數(shù)量] * RELATED ( '產(chǎn)品表'[成本] ) )
利潤代碼:
利潤 =
[銷售金額] - [銷售?成本]
結(jié)果如圖:
這里面涉及到的知識點是:
當相關(guān)數(shù)據(jù)沒在一個表格里面時辛藻,我們不能使用SUM進行聚合,需要使用迭代循環(huán)SUNX以及RELATED函數(shù)互订。
二吱肌、確立維度
通常情況下一組數(shù)據(jù)我們需要觀測的維度大概也就是三方面:時間、財務仰禽、具體內(nèi)容切換氮墨。
①纺蛆、時間維度好說,可以看得出來事實表中自帶銷售日期规揪,選取年份字樣放入切片器中即可犹撒,結(jié)果如下:
具體的樣式可以去點擊右上角調(diào)整。
也可以去設置中調(diào)整粒褒。
這樣就得到了符合我們心里預期的大致效果识颊,具體的細節(jié)根據(jù)個人喜好去調(diào)整,這里就不贅述了奕坟。如果對銷售日期不滿意祥款,也可以利用相關(guān)函數(shù)生成自己的日期表。后面的財務月杉、觀測維度設置方法也是一樣的刃跛,不贅述。
②苛萎、財務維度桨昙。財務維度說白了,就是利用切片器腌歉,可以動態(tài)的切換數(shù)據(jù)蛙酪。
點擊輸入數(shù)據(jù),確定自己的表名翘盖,在列值中分別輸入銷售金額桂塞,利潤,結(jié)果如下:
接下來馍驯,輸入代碼阁危,將沒有關(guān)系的維度與度量值建立關(guān)系。
SWITCH寫法 =
SWITCH (
TRUE (),
SELECTEDVALUE ( '財務維度'[財務維度] ) = "利潤", [利潤],
SELECTEDVALUE ( '財務維度'[財務維度] ) = "銷售金額", [銷售金額],
BLANK ()
)
這里涉及到的是SWITCH函數(shù)與SELECTEDVALUE函數(shù)汰瘫,當然也可以用IF進行判斷狂打,這里就不贅述了,結(jié)果如下:
③混弥、坐標維度趴乡。所謂的觀測維度,其實也就是坐標維度剑逃,其根本原理浙宜,是將原本不在一個表中的數(shù)據(jù)官辽,利用DAX建立在一個表格中蛹磺,使其同處于一個維度之下,再利用虛擬關(guān)系同仆,將原本沒有聯(lián)系的表格強行建立關(guān)系萤捆。
建立維度表,輸入如下代碼:
名稱與分店維度 =
VAR BC1 =
SELECTCOLUMNS (
ADDCOLUMNS ( DISTINCT ( '分店表'[分店名] ), "名稱與分店", "分店" ),
"名稱與分店", [名稱與分店],
"具體內(nèi)容", [分店名]
)
VAR BC2 =
SELECTCOLUMNS (
ADDCOLUMNS ( DISTINCT ( '產(chǎn)品表'[商品名稱] ), "名稱與分店", "商品名稱" ),
"名稱與分店", [名稱與分店],
"具體內(nèi)容", [商品名稱]
)
RETURN
UNION ( BC1, BC2 )
結(jié)果如圖:
在建模卡片下選擇新表俗或,輸入DAX函數(shù)市怎,得到我們需要的統(tǒng)一坐標維度表。
再輸入如下代碼將原本沒有聯(lián)系的數(shù)據(jù)建立關(guān)系:
分析數(shù)據(jù) =
VAR BC3 =
TREATAS ( VALUES ( '名稱與分店維度'[具體內(nèi)容] ), '產(chǎn)品表'[商品名稱] )
VAR BC4 =
TREATAS ( VALUES ( '名稱與分店維度'[具體內(nèi)容] ), '分店表'[分店名] )
RETURN
SWITCH (
TRUE (),
SELECTEDVALUE ( '名稱與分店維度'[名稱與分店] ) = "商品名稱", CALCULATE ( [SWITCH寫法], BC3 ),
SELECTEDVALUE ( '名稱與分店維度'[名稱與分店] ) = "分店", CALCULATE ( [SWITCH寫法], BC4 ),
BLANK ()
)
選擇柱型折線圖辛慰,將具體內(nèi)容作為共享坐標軸区匠,將分析數(shù)據(jù)放入列值中,結(jié)果如下:
這樣的話我們就得到一個動態(tài)數(shù)據(jù)與動態(tài)坐標結(jié)合在一起的動態(tài)圖帅腌,可以隨意的切換三種維度驰弄。涉及到的一些相關(guān)函數(shù),在這里就不贅述了速客。
三戚篙、帕累托累計占比
三種維度我們得到了,接下來就是來編寫累計溺职、占比岔擂、以及累計占比的代碼。
累計代碼:
累計 =
SWITCH (
TRUE (),
SELECTEDVALUE ( '財務維度'[財務維度] ) = "利潤", CALCULATE ( [利潤], ALLSELECTED ( '銷售明細'[銷售數(shù)量] ) ),
SELECTEDVALUE ( '財務維度'[財務維度] ) = "銷售金額", CALCULATE ( [銷售金額], ALLSELECTED ( '銷售明細'[銷售數(shù)量] ) )
)
占比代碼:
占比 =
DIVIDE( [分析數(shù)據(jù)], [累計] )
累計占比代碼:
累計占比 =
VAR SQ = [占比]
RETURN
CALCULATE ( [占比], FILTER ( ALL ( '名稱與分店維度'[具體內(nèi)容] ), [占比] >= SQ ) )
將累計占比的代碼放入剛才的可視化插件浪耘,放在行值位置乱灵。結(jié)果如下:
我們會發(fā)現(xiàn)似乎有些地方不對勁啊,有一些商品在2017年這個維度上是沒有消費的啊七冲,不應該進行累計的袄取!簡單癞埠,記得白茶之前提到過的篩選空值么状原?優(yōu)化我們的代碼。
累計占比 =
VAR SQ = [占比]
RETURN
IF (
[分析數(shù)據(jù)] <> 0,
CALCULATE (
[占比],
FILTER ( ALL ( '名稱與分店維度'[具體內(nèi)容] ), [占比] >= SQ && [分析數(shù)據(jù)] <> 0 )
)
)
結(jié)果如圖:
這次是不是很完美苗踪?
四颠区、參數(shù)分類
那么動態(tài)的帕累托圖到這里告一段落了,但是我們并沒有對數(shù)據(jù)優(yōu)先級進行判定巴ú毕莱?這里需要我們添加參數(shù)值。
在建模窗格下颅夺,選擇添加參數(shù)朋截,分別添加三個參數(shù),ABC吧黄。
參數(shù)A:
DAX=
GENERATESERIES( 1, 100, 1 )
參數(shù)B:
DAX=
GENERATESERIES( 0, 100, 1 )
參數(shù)C:
DAX=
GENERATESERIES( 0, 100, 1 )
這里說一下部服,問什么參數(shù)A的初始值是1,這是為了防止后面的計算出現(xiàn)問題拗慨。
將三個參數(shù)值放入環(huán)形圖中廓八,添加切片器奉芦,這是為了方便我們在實際使用中能隨時對ABC三類劃分權(quán)重。
添加ABC三類的比例權(quán)重剧蹂。
總體:
參數(shù)總體 =
[參數(shù)A 值] + [參數(shù)B 值] + [參數(shù)C 值]
A類:
A類比例 =
DIVIDE([參數(shù)A 值],[參數(shù)總體])
B類:
B類比例 =
DIVIDE([參數(shù)B 值],[參數(shù)總體])
C類:
C類比例 =
DIVIDE([參數(shù)C 值],[參數(shù)總體])
接下來声功,對數(shù)據(jù)進行判定分類,劃分出三種結(jié)果宠叼。輸入如下代碼:
優(yōu)先級 =
VAR BC = [累計占比]
RETURN
SWITCH ( TRUE (), BC <= [A類比例], "優(yōu)先", BC <= [A類比例] + [B類比例], "其次", "最后" )
將其放入矩陣中查看先巴,結(jié)果如圖:
會發(fā)現(xiàn)又出現(xiàn)之前的毛病了,咋辦冒冬,優(yōu)化代碼唄:
優(yōu)先級 =
VAR BC = [累計占比]
RETURN
IF (
[分析數(shù)據(jù)] <> 0,
SWITCH ( TRUE (), BC <= [A類比例], "優(yōu)先", BC <= [A類比例] + [B類比例], "其次", "最后" )
)
結(jié)果如下:
是不是結(jié)果看起來舒服了很多筹裕?
五、優(yōu)化
剩下最后的步驟窄驹,就是對各個可視化插件進行細節(jié)上的優(yōu)化處理了朝卒,這里就不過多的贅述了。
顏色配置乐埠,大小什么的抗斤,可以按照個人喜好的來。
當然丈咐,也可以添加一個關(guān)于ABC三類計數(shù)的表格瑞眼,以及一個銷售趨勢圖,讓你的報表看起來格調(diào)更高棵逊。
樣例鏈接:http://t.cn/A67zSEUM
小彩蛋:
1伤疙、ABC三類該如何計數(shù)呢?
2辆影、帕累托該如何動態(tài)配色徒像?
小伙伴們?GET了么?
白茶會不定期的分享一些函數(shù)卡片
(文件在知識星球[PowerBI丨需求圈])
這里是白茶蛙讥,一個PowerBI的初學者锯蛀。