當前位置:首頁 > 科技 > 正文

Power BI應用:KPI指标動态展示之TOPN及其他

一、背景故事

2020年第一天上班,B同學還沉浸在跨年的喜悅中,坐在工位上,喝了一口枸杞養生茶,随即打開了電腦,郵箱提醒老闆發來一封郵件,頓時心頭一緊,不會有重要工作吧,趕緊點開郵件,看着看着,眉頭漸舒,原來老闆讓他對19年所有客戶的銷售做排名展示,以了解公司頭部客戶去年銷售表現,具體要求為:

1.TOPN中的N值動态可選。2.除了TOPN中的客戶,其餘客戶銷售歸為“其他”組顯示。3.顯示TOPN和"其他"組的銷售占比情況。

B同學此時心中竊喜,這需求貌似在網上看到過現成解決方案,那就簡單了,打開度娘,照葫蘆畫瓢,不到半個小時,B同學就搞定把郵件發出。在釘釘上和同事聊了幾句,剛拿起茶杯,郵箱提醒老闆郵件又來了,是不是被我的效率震驚了?趕緊點開郵件,郵件大意如下:

1.對完成速度和質量表示認可。

2.對内容有了新的要求:

*對于TOPN客戶,不要彙總在一起,要看到客戶明細。

*對于KPI指标要實現動态切換,比如銷售額,銷量,利潤等。

3.中午十二點前要給到老闆。

B同學此時悲喜交加,新訴求看起來簡單,但是對于之前沒有過類似實操經驗的B同學來說,難度頗大,度娘這次也不好使了,看了一下時間,離十二點還有三個小時,燒香拜佛已然來不及,求人不如求己,B同學放下茶杯,扶了扶眼鏡,帶上耳塞,點開PBI,開整......

二、制作步驟

1.模型概覽

動态指标的優點__動态指标的計算公式

四個維度表(地區,客戶,産品,日期)與一個事實表(訂單)分别建立一對多的單向篩選關系。其餘四個是自建的輔助表。

根據老闆的要求,要實現對TOPN的客戶明細展示以及KPI指标的動态切換,那麼這裡需要建立三個輔助表,分别通過新建參數和新建表的方式,具體如下:

參數N(範圍1-50,50以後的客戶老闆也基本不會看了)

動态指标的優點_動态指标的計算公式_

KPI類别表(便于實現KPI動态切換)

KPI類别表 = ( { ("銷售額", "1" ),( "銷量", "2" ),( "利潤額","3" ), ( "利潤率", "4" )},"KPI", [],"", [])

TOPN參數表(包含所有客戶姓名+其他,便于後續動态展示)

TOPN參數表 =

VAR =

( ( '客戶'[客戶名稱] ), "TOPN參數", [客戶名稱] )

VAR = { "其他"}

UNION ( , )

這個輔助表的建立很重要,是在後續可視化中将客戶組與“其他“組同時展示的關鍵。

2.建立度量值

涼菜上完了,硬菜馬上端上桌,需要建立的具體度量值如下所示。

動态指标的優點__動态指标的計算公式

先唠叨幾句,

要做好度量值的歸類整理和規範命名工作!

要做好度量值的歸類整理和規範命名工作!

要做好度量值的歸類整理和規範命名工作!

重要的事情說三遍!

否則後期度量多了之後你真的會懵逼!

簡單的基礎度量就不再花時間贅述了,下面重點對核心度量進行解釋說明。

base.kpi.auto =

VAR =

( 'KPI類别表'[KPI] )

(

,

"銷售額", [base.salse],

"銷量", [base.],

"利潤額", [base.],

"利潤率", [base.%]

度量本身不難,作用為實現對KPI的動态切換。

rank.kpi =

(

[base.kpi.auto],

( ( 'TOPN參數表'[TOPN參數] ), '客戶'[客戶名稱] )

看着也很簡單吧,但很重要,從模型關系圖中可以看到在這裡B同學并沒有将TOPN參數表與任何表建立關系,那麼該如何實現利用TOPN參數表的字段對KPI指标進行篩選呢?這裡我們用到了函數,通過共有字段[客戶名稱]建立虛拟關系連接兩表,這也是一種無侵入式的設計思路。

rank.rank =

RANKX ( ALL ( 'TOPN參數表'[TOPN參數] ), [rank.kpi] )

有了rank.kpi度量,那麼接下來就是自然的對此度量進行排名。

如果前面介紹的幾個度量可以稱之為後台度量或基礎度量,那麼後面我們要介紹的度量便可以稱為前端度量或展示度量。

先上效果圖:

動态指标的優點_動态指标的計算公式_

對上圖進行簡單分析,有三個列字段,TOPN即之前建立的輔助表TOPN參數表,KPI即為核心指标,還有對KPI排名的RANK字段。

接下來重點講一下KPI以及RANK字段相關度量值的構建。

KPI字段度量值

n& =

VAR =

( 'TOPN參數表'[TOPN參數] )

VAR N =

TOPN ( [參數N 值], ( '客戶'[客戶名稱] ), [base.kpi.auto] )

(

TRUE(),

[rank.rank]

你可能想看:

有話要說...

取消
掃碼支持 支付碼