一個案例說明動態(tài)ABC的制作
? ? ? 如何通過一個案例來說明我們所強調(diào)的度量動態(tài)化分析的優(yōu)勢在哪里?這兩天恰恰做了個關(guān)于ABC的動態(tài)度量,想想以前的Excel做法,拿出來對比分析一下。同時提供SQLBI官方關(guān)于動態(tài)ABC的文章的翻譯文檔。
? ? ? 一、Excel方法的ABC分析
? ? ? 關(guān)于ABC有太多的介紹。這里只簡單將重點步驟列出來,目的并不是為了詳細介紹如何制作ABC度量,而是思路與結(jié)論。下面是Excel里制作ABC的最簡單的步驟:
? ? ? ? 1、第一步:將度量值所在列--[金額]按降序排序。
? ? ? ? ? ?這里為[金額]列(如果還有其他度量,也可按同樣的步驟實現(xiàn)):
? ? ? ? 第二步:求該列每行的百分比。
? ? ? ? ? 即每行占整列值的百分比:A列中每個單項的[金額]占整列[金額]總值的比:
? ? ? ? 公式:=B2/SUM($B2:$B$2100)? //分母使用該列的絕對值匯總值
? ? ? 第三步:求累計百分比(將每行百分比依次相加求累計百分比):
? ? ? 公式:=SUM($C$2 : C2)
? ? ?第四步:按累計百分比定義ABC取值范圍。
? ? ? ?使用IF函數(shù)構(gòu)建ABC分組條件來實現(xiàn)。
公式:=IF(D2<=76%,"A",IF(D2<=76%,"B","C")) ?// 其中ABC的取值范圍,可以根據(jù)實際修改。
? ? ? 第五步:配合圖表或其他方式輸出結(jié)果:
? ? ? ? 二、Power BI或 Powerpivot中的動態(tài)ABC分析。
? ? ? ? 現(xiàn)在, 問題來了。當需要改變計算度量或使用不同維度來進行ABC分析時,都需要重新修改。
? ? ? ? 比如:
? ? ? ? (1)除了分析某一商品類別在[Sales]度量下的 ABC分析之外, 可能還希望分析該類別的銷售、庫存、顧客購買頻次等度量下的分析;
? ? ? ? (2)以及ABC分析在不同一度量下、?不同門店、供應(yīng)商等維度下的ABC情況等等;?
? ? ? ? (3)另外,可能還得應(yīng)對老板或領(lǐng)導的某些任性要求……。
? ? ? ? 在這些情況下, 則需要一種動態(tài)ABC方法,它可以在任意維度:比如時間段維度下分別進行ABC的組合分析。之前的Excel方法已不能滿足:針對不同度量、不同維度動態(tài)分析的需求。 實現(xiàn)這種業(yè)務(wù)需求,可以通過 Power BI或Powerpivot里的DAX度量公式,來實現(xiàn)這種動態(tài)ABC分析。
? ? ? 簡單說下動態(tài)ABC分析模型的制作流程:
? ? ? 1、準備需要的表:
? ? ? ?將準備好的表導入到數(shù)據(jù)模型(Powerpivot或Power BI),包括但不限于以下表:
? ? (1)基本表:包括了常用的商品信息表、日期表以及作為事實表的銷售表等。這將作為動態(tài)選擇的指標值的來源表;
? ? ?(2)ABC 參數(shù)表:很簡單,僅僅是用于ABC的分類維度表:指定ABC分類的參數(shù)值(定義前面的ABC的IF語句條件);
? ? ?(3)ABC 指標: 需要用于ABC分析的有關(guān)度量:銷售、銷量、毛利、客單、購買次數(shù)等等;
? ? ? ? 2、當模型里的維度不能滿足需求時,在數(shù)據(jù)模型里可以增加需要維度列:
? ? ? ?即用來觀察ABC的可能用到的維度或?qū)傩粤?。以便擴展實現(xiàn)更優(yōu)化的 ABC動態(tài)化運用:
? ? ?(1)使用Power BI里的參數(shù)表或新表;
? ? ?(2)Powerpivot里可以使用新建列或銜接表功能等。本文不涉及該內(nèi)容。
? ? ? 下圖所示的數(shù)據(jù)模型(已建立關(guān)系)包含已建立關(guān)系的數(shù)據(jù)模型(ABC參數(shù)表與其他表):
? ? ? ? 注:在Powerpivot里建立這些表之間的關(guān)系的方法:選擇某個列,按住鼠標不動,拖動到另一個需要連接的表的另外一個列,連線后就建立好了關(guān)系
? ? ? 本示例中,我們模擬了一個簡單的數(shù)據(jù)模型表(導入Powerpivot):
? ? ? ? 在Powerpivot里建立表之間的關(guān)系,構(gòu)建出一個簡易的分析模型:
? ? ? ? ?3、在數(shù)據(jù)模型里定義用于ABC分析的相關(guān)DAX公式度量(或其他度量,根據(jù)
需要)。
? ? ?比如,我們在Powerpivot公式欄里定義一個銷售度量 [Sales]:
? ? ?[Sales]:=SUM([銷售])
? ? ?根據(jù)該銷售度量 [Sales] 來`定義一個在該度量下的動態(tài)ABC度量:?[Sales ABC]
? ? ? 公式:Sales ABC :=(見圖示,這里節(jié)省版面從略,或者見提供的案例文件)
? ? ? 注:該公式在官方SQLBI有專門的介紹。為方便大家學習,與本文同時提供簡體翻譯文。
? ? ? 從數(shù)據(jù)模型里拖拽出一個透視表。
? ? ? 選擇適當?shù)男?、列、篩選器獲得動態(tài)的ABC結(jié)果表(這里是產(chǎn)品編碼在[Sales]度量下的ABC值):
? ? ? ? 這里透視表的列篩選使用了參數(shù)表中 [Crass]列(含ABC維度)。
? ? ? ? 改變透視表的行、列、篩選器(分析維度)。例如將透視表的行改成類別編號(則分析的是:類別在[Sales]度量下的ABC值):
? ? ? ? 當然,還可以選取其他維度,以便從不同角度來分析ABC,達到多個不同維度下的ABC動態(tài)計算。
? ? ?結(jié)束語:
? ? ? ?我們今天的話題是想從上面的案例中說明:
? ? ? ?動態(tài)選擇維度表、以及利用這些維度的組合變化結(jié)果(例如透視表的行、列、篩選器的組合變化,數(shù)據(jù)模型內(nèi)列表的組合計算等),這是與我們復雜的業(yè)務(wù)需求相映射對應(yīng)的。
? ? ? ?因此,維度建模能夠?qū)I(yè)務(wù)需求(視為數(shù)據(jù)行為)定義為一個數(shù)據(jù)模型(轉(zhuǎn)變?yōu)樾袨閿?shù)據(jù))來進行分析。 ? ?
? ? ? ?也就是說,一個數(shù)據(jù)模型可以表示為一個或多個業(yè)務(wù)行為,業(yè)務(wù)問題的處理可以轉(zhuǎn)化為對數(shù)據(jù)模型中列表(維度或度量)數(shù)據(jù)的探索,包括利用維度來檢測特定度量值。而且,如果將多個關(guān)聯(lián)的、處理單個業(yè)務(wù)場景的數(shù)據(jù)模型組合在一起,那么,就是一個特定業(yè)務(wù)場景的分析系統(tǒng)。
? ? ? ?也就是所說的數(shù)據(jù)世界就是:維度+度量的世界。
? ? ? ?附件:如需本文案例文件,請到QQ群:490799485, Power BI 非官方 ?群文件里下載 ?; ? ? ? ? ? ? ?
? ? ? ?或直接百度網(wǎng)盤下載:https://pan.baidu.com/s/11e4Wj97N7BRwMsAkhqTJyg 密碼: iwan
? ? ? ? 先說到這里。錯誤之處,還望批評指正!