在第一篇計算組的文章中,給大家介紹了,POWERBI的計算組功能的基本概念和作用。
本文,旨在透過簡單案例,介紹計算組功能的具體應用場景。
沒有看過第一篇的同學,可以先簡單過一下第一篇,補齊一下概念和開啟計算組功能。
https://www.cnblogs.com/simone331/p/18146080
一:資料介紹
本文使用了網上的借貸資料用作演示,不涉及商業牟利,只用於學習分享。
本資料集中,包含了時間序列的借貸消費記錄,我們準備用計算組來實現針對《借款金額》、《總待還本金》的環同比分析。
二:計算組建立
2.1 建立計算組
首先進入POWERBI 模型檢視,點選功能欄的計算組按鈕(沒有計算組按鈕的,應該是沒有開啟計算組功能,請參考第一篇文章,先開啟計算組功能)
點選建立後,在功能欄的右側會出現計算組選項,如下:
系統會自動建立一個計算項為:計算項 = SELECTEDMEASURE()
當然名字是可以更改的,這裡我們將他更改一下名字為 本期
可以看到紅色箭頭除,我們是可以繼續生成計算項的
我們來接著建立一個,上週同期和去年同期的度量值
點選上圖的新計算項,新增計算組度量值
上週同期 = CALCULATE(SELECTEDMEASURE(), ---當前值 DATEADD('維度表_日期表'[Date],-7,DAY)) ---返回7天前,即上週同期
上月同期 = CALCULATE(SELECTEDMEASURE(), ---當前值 DATEADD('維度表_日期表'[Date],-1,MONTH)) ---返回1個月前,即上月同期
三:純度量值方案與計算組方案對比
3.1 純度量值方案
列出所需度量值
請觀察以下兩組DAX的相通之處:
總待還金額 = CALCULATE(SUM(LC[總待還本金])) 總待還金額_上週 = CALCULATE([總待還金額],DATEADD('維度表_日期表'[Date],-7,DAY)) 總待還金額_上月 = CALCULATE([總待還金額],DATEADD('維度表_日期表'[Date],-1,MONTH))
借款總金額 = CALCULATE(SUM('LC'[借款金額])) 借款總金額_上週 = CALCULATE([借款總金額],DATEADD('維度表_日期表'[Date],-7,DAY))
借款總金額_上月 = CALCULATE([借款總金額],DATEADD('維度表_日期表'[Date],-1,MONTH))
可以看到,計算借款總金額和總待還金額時,本質上我們用了兩組相同的程式碼
只有CALCULATE 的第一引數不一樣,而計算組正好就是解決這一問題的,即類似的程式碼,避免重複
將度量值拉入矩陣
3.2 計算組方案
列出所需計算組的計算組度量值
將行放上我們的計算組,列放上日期,值放上我們需要計算的兩個度量值
3.3 結果對比
我們可以看到,兩種方案的值是一樣的,即計算組實現了和純度量值,一樣的應用效果
四:總結
經過前面的計算組對照驗證
我們發現計算組的優勢:
1:節約度量值,同一邏輯的度量值,我們只需要一組計算組度量值即可,無須重複書寫度量值
本文僅用到了兩個基礎度量值給大家做演示,實際生產環境中,往往有大量基礎度量值,需要書寫環同比分析
假設有10個度量值需要環同比
那麼純度量值方案將會需要 3✖10, 即 30個 度量值
計算組方案則只需要,一個環同比計算組及10個基礎度量值,即 13個 度量值
2:提高資料準確性,由於避免了大量基礎度量值的編寫,所以也避免了重複書寫度量值的過程中,書寫錯誤導致資料出錯的機率
以上就是本次分享的全部內容了
下一篇文章會給大家介紹,基於計算組的任意日期週期資料對比,也是計算組的實際運用案例(會在24年6月下旬更新)