數據可視化之powerBI入門(十)認識Power BI的核心概念:度量值


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

本文學習PowerBI最重要的概念:度量值

 


 

初學Power BI一般都會對度量值比較困惑,畢竟對長期接觸Excel的人來說,這是個全新的概念,但一旦理解了她,肯定會立即喜歡上。

簡單來說,度量值是用DAX公式創建一個虛擬字段的數據值,她不改變源數據,也不改變數據模型,如果你不在報表上使用她,甚至不知道她是什么樣子的,而一旦被拖拽到報表上,便發揮巨大的作用,她可以隨着切片器的篩選而閃轉騰挪、變化萬端,所以度量值一般在報表交互時使用。

說了這么多,你也許覺得更暈,不過沒問題,這個概念不是靠語言能解釋的很清楚的,在PowerBI報表上體驗一下可能立即就明白了。

 

案例數據:

全國連鎖電子產品專賣店的2016至2017年的銷售明細,銷售產品有三類:手機、電腦、平板,每一類又分別來自三個品牌:小米、蘋果、三星,這個店銷售的產品共計9個,全國8個城市門店設有門店。

 

 

 

還有幾個維度表和一個日期表,模型關系圖如下:

 

 

 

我們現在根據這個模型分析累計銷售同比增長率。

先新建一個度量值[銷售總額]:

銷售總額 = sum('銷售明細'[銷售額])

然后在畫布上添加矩陣表格可視化組件,把[月份]和剛創建的度量值分別放入行和值,每月的銷售總額就出來了:

 

 

 

 

因為沒有加入年度篩選,這時候的每月銷售額實際上是2016和2017年的兩個月份的合計額,所以現在加入一個年度切片器,

 

 

 

這個時候,選中年份,這個銷售總額就是該年度當月的銷售總額了。

 

因為我們是要分析本年累計銷售金額的同比增長率,那么需要先得到本年累計銷售金額和上年累計銷售金額,新建兩個度量值:

本年累計銷售額 = TOTALYTD([銷售總額],'日期表'[日期])
上年累計銷售額 = TOTALYTD([銷售總額],SAMEPERIODLASTYEAR('日期表'[日期]))

 

這里用了兩個DAX函數,TOTALYTD函數是統計從年初到本月的金額,SAMEPERIODLASTYEAR返回的是上年同期的日期表,關於DAX函數先有個印象就行,后面會專門介紹。

把這兩個度量值也放入矩陣中,選中2017年,本年和上年截至每個月份的累計銷售額就出來了,

 

 

然后再添加個度量值[同比增長率],

累計同比增長率 = divide([本年累計銷售額],[上年累計銷售額])-1

把該度量值拖入矩陣,同比增長率就出來了,這就是利用這個數據模型實現的結果。

 

 

你也許覺得做個同比增長率也不是很麻煩,在Excel里面做也可以很快做出來,但是如果不只比較銷售總額,還要分類別、分品牌來比較呢,是不是要在Excel里面做很多遍,況且這只是兩年的數據,如果是20年呢,如果在100個城市設有門店呢,估計用傳統Excel技能做要累吐血也做不完吧,而在剛才建立的模型里,無論有多少個維度,無論按哪個維度比較,都是點點鼠標的事:

 

 

 

 

這就是度量值的魅力,只是簡單建立了四個度量值,然后就神奇的實現了多維度的比較,這要歸功於度量值的最重要的特征:上下文。

上下文就是度量值所處的環境,篩選表的行列標簽、切片器的選中,都是度量值的上下文,比如北京2017年截至5月的蘋果手機累計銷售額3424000,它的上下文就是下面這5個維度:

[城市]="北京市"
[品牌]="蘋果"
[類別]="手機"
[年度]=2017
[月份]=5月

 

 

理解了上下文,就理解了度量值的最重要的特征,因此她被稱為移動的公式,隨着上下文環境的不同而展示不同的數據,度量值另外還有兩個主要特征:

度量值不浪費內存,只有被拖到圖表上才執行運算,如果數據量非常大的時候這點非常有利

  • 度量值可以循環使用,比如上面的建立的度量值:
    本年累計銷售額 = TOTALYTD([銷售總額],'日期表'[日期])
    累計同比增長率 = divide([本年累計銷售額],[上年累計銷售額])-1,
    就是直接調用之前建立好的度量值,所以以后在模型中新建度量值的時候,推薦從最簡單的度量值開始建。

 

看到這里是不是對度量值的認識比較清晰了,如果動手做一遍會更加理解上下文。建立合理的數據模型,加上靈活運用度量值,以后無論遇到什么數據分析都不是難題了。

度量值的創建離不開函數,這里用到的函數稱為DAX,后面會主要介紹,並通過DAX實例來加深對度量值的理解。

案例數據可在公眾號回復“度量值案例數據”下載。


免責聲明!

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



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