數據可視化之分析篇(一)使用Power BI進行動態帕累托分析


https://zhuanlan.zhihu.com/p/57763423

通過簡單的點擊交互,就能進行動態分析發現見解,才是我們需要的,恰好這也是 PowerBI 所擅長的。

就帕累托分析來說,能從不同的角度快速發現關鍵因素、以及可以動態設定關鍵因素的閾值,就是我們需要的。本文通過一個示例來看看如何生成一個動態的帕累托圖,先看看最終效果,

這樣分析是不是很簡單,下面就來看看是如何制作的。

數據為虛擬的某連鎖店的電子產品銷售明細,以及與之關聯的產品和銷售地點維度,和一個對應的日期表,建立關系圖如下,

 

要分析的維度:

1,時間維度:年份

2,財務指標:收入和利潤

3,銷售細分:按地區和產品明細


 

時間維度

 

年度指標比較簡單,銷售明細表中有日期數據,直接根據日期表中的年度創建一個切片器就行了。

財務指標

先建兩個度量值:

 

收入 = SUM('銷售明細'[銷售額])
利潤貢獻 = SUM('銷售明細'[毛利])

 

然后在PowerBI Desktop中新建表,只有一個字段[財務指標],數據為收入和利潤,

 

按字段[財務指標]制作切片器,然后寫度量值[指標數據],

 

指標數據 =
SWITCH(TRUE(),
SELECTEDVALUE('財務指標'[財務指標])="收入",[收入],
SELECTEDVALUE('財務指標'[財務指標])="利潤",[利潤貢獻],
BLANK()
)

 

該度量值判斷切片器的選擇,如果選擇的是收入,就匯總收入數據;如果選擇的是利潤,就匯總利潤。

 

產品和地區維度

 

同上面的思路類似,把產品明細和地區明細整合到一起,如下圖,

 

如果數據量很小,手工整理也很快,不過在這里依然可以用DAX實現,在【建模】選項卡下,點擊"新表"(參考:PowerBI Desktop中新建表的使用場景),在編輯欄輸入:

 

分析維度 =
VAR item1 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '城市'[城市] ) , "分析維度" , "地區" ) , "分析維度" , [分析維度],"維度明細",[城市] )
VAR item2 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '產品明細'[產品名稱]) , "分析維度" , "產品" ) ,"分析維度" , [分析維度], "維度明細" , [產品名稱] )
RETURN UNION( item1 , item2 )

然后上圖中的表格就生成了,根據該表的字段[分析維度]創建切片器。

至此,三個分析維度已經建立完成,並體現在報表左側的三個切片器上。

 

 


 

制作帕累托圖

步驟和上一篇文章類似,只是由於分析維度更多,需要更細化的處理。各個切片器之間要相互配合,考慮上下文的影響,以下的DAX公式稍微長一點,需要根據每個函數慢慢理解,按照這個實例學習這些函數其實也是個不錯的方式。

將【折線和簇狀柱形圖】拖到畫布上,將前面創建的分析維度表中的[維度明細]拖入到共享軸。

創建度量值[分析數據]拖入到列值框中,

 

分析數據 =
VAR item3=TREATAS( VALUES('分析維度'[維度明細]),'城市'[城市])
VAR item4=TREATAS(VALUES('分析維度'[維度明細]),'產品明細'[產品名稱])
RETURN
SWITCH(TRUE(),
SELECTEDVALUE('分析維度'[分析維度])="地區",
CALCULATE([指標數據],item3),
SELECTEDVALUE('分析維度'[分析維度])="產品",
CALCULATE([指標數據],item4),
BLANK()
)

 

下一步就是獲得累計占比的數據,創建度量值如下,

 

分析數據合計 =
SWITCH(TRUE(),
SELECTEDVALUE('財務指標'[財務指標])="收入",
CALCULATE([收入],ALLSELECTED('銷售明細'[銷售額])),
SELECTEDVALUE('財務指標'[財務指標])="利潤",
CALCULATE([利潤貢獻],ALLSELECTED('銷售明細'[毛利])),
BLANK()
)

 

數據占比 = DIVIDE([分析數據],[分析數據合計])

 

累計占比 =
VAR cur_rate=[數據占比]
RETURN
CALCULATE([數據占比],FILTER(ALL('分析維度'[維度明細]),[數據占比]>=cur_rate))

 

將[累計占比]拖入到列值框中,帕累托圖就制作好了,


 

ABC比例設置

 

帕累托分析也成為ABC分析,一般按照70%、20%和10%的比例來划分,或者按照二八定律的80%和20%划分,當然這些都是一個概數而已,並不是一定要這樣划分,實際分析時還要根據情況自行調整。

在【建模】選項卡下,點擊"新建參數"(參考:創建PowerBI「參數」輕松搞定動態分析),建立三個參數如下:

 

參數a = GENERATESERIES(1, 100, 1)
參數b = GENERATESERIES(0, 100, 1)
參數c = GENERATESERIES(0, 100, 1)

 

同時生成三個切片器,通過這三個切片器來控制這三個參數的數值大小,然后就可以計算出每一類的相對占比,

 

A類比例 = DIVIDE([參數a值],[參數a值]+[參數b值]+[參數c值])
B類比例 = DIVIDE([參數b值],[參數a值]+[參數b值]+[參數c值])
C類比例 = DIVIDE([參數c值],[參數a值]+[參數b值]+[參數c值])

 

利用這三個度量值生成一個環形圖,這樣動態的ABC比例就設計好了,

 

 

判斷因素的所屬分類

建立度量值,

數據所屬分類 =
VAR cur_leji=[累計占比]
RETURN
SWITCH(TRUE(),
cur_leji<=[A類比例],"A",
cur_leji<=[A類比例]+[B類比例],"B",
"C"
)

 

至此該模型的技術操作完成,剩下的就是一些可視化方面的修飾、格式調整等,以及按照ABC的分類動態配色。

該帕累托模型在主要的分析維度上都已考慮到,可以在實際分析中進行分解套用。

 

總結:

進行動態帕累托分析的主要步驟:

1,整理需要分析的維度

2,設置ABC比例參數

3,創建指標數據和累計比例


免責聲明!

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



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