您當前的位置:首頁 > 書法

多維度帕累託丨最終話(修訂)

作者:由 PowerBI丨白茶 發表于 書法時間:2020-05-20

最近事情比較多,學習的速度也慢了下來,慚愧。

白茶對近一個月所學的DAX進行了一次梳理,做出了一個動態多維度的帕累託圖,效果如下。

多維度帕累託丨最終話(修訂)

這個動圖包含了最近所學的相關DAX函式,那麼是如何實現的呢?

多維度帕累託丨最終話(修訂)

多維度帕累託丨最終話(修訂)

多維度帕累託丨最終話(修訂)

多維度帕累託丨最終話(修訂)

這是本次,白茶所使用的一份示例資料,可以說是白茶使用頻率最高的一份樣例了。匯入PowerBI中,系統會自動匹配模型關係,如下圖:

多維度帕累託丨最終話(修訂)

這是前期的準備工作,接下來開始對近期所學的相關知識進行梳理。

多維度帕累託丨最終話(修訂)

一、編寫基本的銷售金額、成本、利潤程式碼,如下:

銷售金額程式碼:

銷售金額 =

SUMX ( ‘銷售明細’, ‘銷售明細’[銷售數量] * RELATED ( ‘產品表’[銷售價] ) )

成本程式碼:

銷售成本 =

SUMX ( ‘銷售明細’, ‘銷售明細’[銷售數量] * RELATED ( ‘產品表’[成本] ) )

利潤程式碼:

利潤 =

[銷售金額] - [銷售成本]

結果如圖:

多維度帕累託丨最終話(修訂)

這裡面涉及到的知識點是:

當相關資料沒在一個表格裡面時,我們不能使用SUM進行聚合,需要使用迭代迴圈SUNX以及RELATED函式。

二、確立維度

通常情況下一組資料我們需要觀測的維度大概也就是三方面:

時間、財務、具體內容切換。

①、時間維度

好說,可以看得出來事實表中自帶銷售日期,選取年份字樣放入切片器中即可,結果如下:

多維度帕累託丨最終話(修訂)

具體的樣式可以去點選右上角調整。

多維度帕累託丨最終話(修訂)

也可以去設定中調整。

多維度帕累託丨最終話(修訂)

多維度帕累託丨最終話(修訂)

這樣就得到了符合我們心裡預期的大致效果,具體的細節根據個人喜好去調整,這裡就不贅述了。如果對銷售日期不滿意,也可以利用相關函式生成自己的日期表。後面的財務、觀測維度設定方法也是一樣的,不贅述。

②、財務維度

。財務維度說白了,就是利用切片器,可以動態的切換資料。

多維度帕累託丨最終話(修訂)

點選輸入資料,確定自己的表名,在列值中分別輸入銷售金額,利潤,結果如下:

多維度帕累託丨最終話(修訂)

接下來,輸入程式碼,將沒有關係的維度與度量值建立關係。

SWITCH寫法 =

SWITCH (

TRUE (),

SELECTEDVALUE ( ‘財務維度’[財務維度] ) = “利潤”, [利潤],

SELECTEDVALUE ( ‘財務維度’[財務維度] ) = “銷售金額”, [銷售金額],

BLANK ()

這裡涉及到的是SWITCH函式與SELECTEDVALUE函式,當然也可以用IF進行判斷,這裡就不贅述了,結果如下:

多維度帕累託丨最終話(修訂)

③、座標維度

。所謂的觀測維度,其實也就是座標維度,其根本原理,是將原本不在一個表中的資料,利用DAX建立在一個表格中,使其同處於一個維度之下,再利用虛擬關係,將原本沒有聯絡的表格強行建立關係。

建立維度表,輸入如下程式碼:

名稱與分店維度 =

VAR BC1 =

SELECTCOLUMNS (

ADDCOLUMNS ( DISTINCT ( ‘分店表’[分店名] ), “名稱與分店”, “分店” ),

“名稱與分店”, [名稱與分店],

“具體內容”, [分店名]

VAR BC2 =

SELECTCOLUMNS (

ADDCOLUMNS ( DISTINCT ( ‘產品表’[商品名稱] ), “名稱與分店”, “商品名稱” ),

“名稱與分店”, [名稱與分店],

“具體內容”, [商品名稱]

RETURN

UNION ( BC1, BC2 )

結果如圖:

多維度帕累託丨最終話(修訂)

在建模卡片下選擇新表,輸入DAX函式,得到我們需要的統一座標維度表。

再輸入如下程式碼將原本沒有聯絡的資料建立關係:

分析資料 =

VAR BC3 =

TREATAS ( VALUES ( ‘名稱與分店維度’[具體內容] ), ‘產品表’[商品名稱] )

VAR BC4 =

TREATAS ( VALUES ( ‘名稱與分店維度’[具體內容] ), ‘分店表’[分店名] )

RETURN

SWITCH (

TRUE (),

SELECTEDVALUE ( ‘名稱與分店維度’[名稱與分店] ) = “商品名稱”, CALCULATE ( [SWITCH寫法], BC3 ),

SELECTEDVALUE ( ‘名稱與分店維度’[名稱與分店] ) = “分店”, CALCULATE ( [SWITCH寫法], BC4 ),

BLANK ()

選擇柱型折線圖,將具體內容作為共享座標軸,將分析資料放入列值中,結果如下:

多維度帕累託丨最終話(修訂)

這樣的話我們就得到一個動態資料與動態座標結合在一起的動態圖,可以隨意的切換三種維度。涉及到的一些相關函式,在這裡就不贅述了。

三、帕累託累計佔比

三種維度我們得到了,接下來就是來編寫累計、佔比、以及累計佔比的程式碼。

累計程式碼:

累計 =

SWITCH (

TRUE (),

SELECTEDVALUE ( ‘財務維度’[財務維度] ) = “利潤”, CALCULATE ( [利潤], ALLSELECTED ( ‘銷售明細’[銷售數量] ) ),

SELECTEDVALUE ( ‘財務維度’[財務維度] ) = “銷售金額”, CALCULATE ( [銷售金額], ALLSELECTED ( ‘銷售明細’[銷售數量] ) )

佔比程式碼:

佔比 =

DIVIDE( [分析資料], [累計] )

累計佔比程式碼:

累計佔比 =

VAR SQ = [佔比]

RETURN

CALCULATE ( [佔比], FILTER ( ALL ( ‘名稱與分店維度’[具體內容] ), [佔比] >= SQ ) )

將累計佔比的程式碼放入剛才的視覺化外掛,放在行值位置。結果如下:

多維度帕累託丨最終話(修訂)

我們會發現似乎有些地方不對勁啊,有一些商品在2017年這個維度上是沒有消費的啊,不應該進行累計的啊!簡單,記得白茶之前提到過的篩選空值麼?最佳化我們的程式碼。

累計佔比 =

VAR SQ = [佔比]

RETURN

IF (

[分析資料] <> 0,

CALCULATE (

[佔比],

FILTER ( ALL ( ‘名稱與分店維度’[具體內容] ), [佔比] >= SQ && [分析資料] <> 0 )

結果如圖:

多維度帕累託丨最終話(修訂)

這次是不是很完美?

四、引數分類

那麼動態的帕累託圖到這裡告一段落了,但是我們並沒有對資料優先順序進行判定啊?這裡需要我們新增引數值。

多維度帕累託丨最終話(修訂)

在建模窗格下,選擇新增引數,分別新增三個引數,ABC。

引數A:

DAX=

GENERATESERIES( 1, 100, 1 )

引數B:

DAX=

GENERATESERIES( 0, 100, 1 )

引數C:

DAX=

GENERATESERIES( 0, 100, 1 )

這裡說一下,問什麼引數A的初始值是1,這是為了防止後面的計算出現問題。

多維度帕累託丨最終話(修訂)

將三個引數值放入環形圖中,新增切片器,這是為了方便我們在實際使用中能隨時對ABC三類劃分權重。

新增ABC三類的比例權重。

總體:

引數總體 =

[引數A 值] + [引數B 值] + [引數C 值]

A類:

A類比例 =

DIVIDE([引數A 值],[引數總體])

B類:

B類比例 =

DIVIDE([引數B 值],[引數總體])

C類:

C類比例 =

DIVIDE([引數C 值],[引數總體])

接下來,對資料進行判定分類,劃分出三種結果。輸入如下程式碼:

優先順序 =

VAR BC = [累計佔比]

RETURN

SWITCH ( TRUE (), BC <= [A類比例], “優先”, BC <= [A類比例] + [B類比例], “其次”, “最後” )

將其放入矩陣中檢視,結果如圖:

多維度帕累託丨最終話(修訂)

會發現又出現之前的毛病了,咋辦,最佳化程式碼唄:

優先順序 =

VAR BC = [累計佔比]

RETURN

IF (

[分析資料] <> 0,

SWITCH ( TRUE (), BC <= [A類比例], “優先”, BC <= [A類比例] + [B類比例], “其次”, “最後” )

結果如下:

多維度帕累託丨最終話(修訂)

是不是結果看起來舒服了很多?

五、最佳化

剩下最後的步驟,就是對各個視覺化外掛進行細節上的最佳化處理了,這裡就不過多的贅述了。

顏色配置,大小什麼的,可以按照個人喜好的來。

多維度帕累託丨最終話(修訂)

當然,也可以新增一個關於ABC三類計數的表格,以及一個銷售趨勢圖,讓你的報表看起來格調更高。

多維度帕累託丨最終話(修訂)

樣例連結:

http://

t。cn/A67zSEUM

小彩蛋:

1、ABC三類該如何計數呢?

2、帕累託該如何動態配色?

小夥伴們❤GET了麼?

白茶會不定期的分享一些函式卡片

(檔案在知識星球[PowerBI丨需求圈])

多維度帕累託丨最終話(修訂)

這裡是白茶,一個PowerBI的初學者。

下面這個知識星球是針對有實際需求的小夥伴,有需要的請加入下面的知識星球。

多維度帕累託丨最終話(修訂)

多維度帕累託丨最終話(修訂)

多維度帕累託丨最終話(修訂)

標簽: 維度  分店  銷售  引數  程式碼