Power BI展示清楚庫存結(jié)構(gòu)只需一張圖
黃成明老師的《數(shù)據(jù)化管理》一書中,介紹過一個(gè)庫存切割圖(P143),如下圖所示,只需一張圖表即可清楚展示庫存全貌。

黃老師的公眾號近日有介紹如何在Excel中實(shí)操,本文介紹怎么在Power BI中實(shí)現(xiàn)類似的功能。

有讀者可能會想到使用Power BI內(nèi)置的堆積條形圖/柱形圖實(shí)現(xiàn),很遺憾,這種方法無法實(shí)現(xiàn)上圖中的數(shù)據(jù)標(biāo)簽。因此,需要我們書寫比較長的公式自造圖表。示例僅對庫存量進(jìn)行實(shí)操,SKU層級雷同。
本文的方案有三個(gè)特色:互動(dòng)性佳,數(shù)據(jù)可隨切片器的變化而變化;靈活性好,數(shù)據(jù)維度可隨時(shí)增加或減少;重點(diǎn)突出,漸變式配色,隨著庫存量增加顏色逐漸變深。以下進(jìn)行詳細(xì)說明。
準(zhǔn)備好庫存數(shù)據(jù),導(dǎo)入Power BI,新建以下度量值,使用支持SVG的第三方圖表(如Image by CloudScope)在畫布中將該度量值展示出來,即可看到上圖的效果。

之前你可能需要很多圖表展示庫存結(jié)構(gòu),現(xiàn)在只需要一個(gè),以下對原理進(jìn)行解釋。

1.構(gòu)造縱向維度表
表中有6個(gè)維度,分別是上下裝、年份、季節(jié)、性別、類別和貨齡區(qū)間,需要合并成以下效果。

首先使用SELECTCOLUMNS對原始數(shù)據(jù)中需要的字段進(jìn)行挑選和重命名,接著UNION合并六張子表。以下是此過程的單獨(dú)列示,實(shí)際需要嵌入上方的很長的那個(gè)公式。
2.確定矩形位置
分析該圖表的結(jié)構(gòu)可以得知,圖表的主體是一個(gè)個(gè)矩形的拼接。拼接的方式是縱向?yàn)槊總€(gè)維度,橫向?yàn)槊總€(gè)維度中的子項(xiàng)。

對于縱向排列,上方SELECTCOLUMNS公式操作時(shí)為每個(gè)維度添加了索引,鑒于SVG的矢量性質(zhì),索引+每個(gè)矩形的高度即可生成自動(dòng)下移的效果。
對于橫向排列,后面的子項(xiàng)目在前一個(gè)子項(xiàng)目的尾巴處開始展示,已知矩形寬度和庫存數(shù)量呈線性關(guān)系,所以需要為合并的維度表增加滾動(dòng)庫存:
搞清楚了每個(gè)維度,每個(gè)子項(xiàng)的坐標(biāo)系,即可實(shí)操,為每個(gè)子項(xiàng)增加一個(gè)矩形:
顏色的變化蘊(yùn)含在上方代碼中,突出顯示如下,通過opacity標(biāo)簽控制透明度??刂频脑瓌t是與最大庫存的項(xiàng)目比較,比方下裝庫存量是上裝的50%,那么透明度就在上裝的基礎(chǔ)上打五折。

3.確定坐標(biāo)軸位置
坐標(biāo)軸使用SVG編碼中的text標(biāo)簽設(shè)置,tspan達(dá)到換行的目的。
以上即完成了全部制作。該圖表的設(shè)置為像素級別,所以可以調(diào)整的很精確。制作過程偏復(fù)雜,但好在只要做好即可復(fù)用。讀者可以自行調(diào)整代碼改變?yōu)樽约合矚g的樣式。
示例pbix文件https://t.zsxq.com/0dfsY30Lz