DAX/PowerBI系列 - 累計總計(Cumulative Total)
2017/07/23 更新:B列公式(見最后)
2019/08/08 更新:在可視化數據的時候,一定要選擇日期維度的日期列來作顯示不然會得不到期望的結果。
難度: ★★☆☆☆(2星)
適用: ★★☆☆☆(2星)
概況:
這個模式普遍適用對業務/操作基於時間進行累計統計度量,例如:計算年度累計,月度累計,庫存量,庫存價值。
正文:
上個圖來個直觀感受:已知一個表中庫存變動,想知道當前庫存是多少,這個模式就能夠搞定。
你猜猜哪一列才是對的呢?
瞅瞅第四列【Cumulative Quantity】,再瞅瞅第三列非粗體部分:
歡迎轉載,請保留原文鏈接和作者信息。O(∩_∩)O謝謝。
DAX/PowerBI系列 - 累計總計(Cumulative Total)
作者:馬丁叔叔 鏈接:http://www.cnblogs.com/lizardbi/p/DAX-PATTERN-POWERBI-Cumulative-Total.html
應用場景:
以下是幾個應用場景:
- 庫存分析
- 每月月底庫存,今日庫存
- 資產負債表
- 統計資產,負債,權益
- 累計余額
歡迎交流與騷擾
最終PowerBI效果顯示如下:(耐心等待PowerBI 出來,噔噔噔噔~~~)
數據模型:
要點:
- 如何得到有業務數據的最后日期
- CACULATE中SUM計算
回頭看看開篇的圖:
- 瞅瞅C列【Cumulative Quantity】,再瞅瞅B列,還有其他列(非粗體部分)
- D列沒有check最后的Transactions.DateKey,所以顯示到了Date的最后一個日期,這個當然不是想要的。
- S1, S2自己看看公式理解一下
B列 | C列 | |
![]() |
Cumulative Quantity := IF ( MIN ( 'Date'[DateKey] ) <= CALCULATE ( MAX ( Transactions[DateKey] ), ALL ( Transactions ) ), CALCULATE ( SUM ( Transactions[Quantity] ), FILTER ( ALL ( 'Date'[Date] ), 'Date'[Date] <= MAX ( 'Date'[Date] ) ) ) )
|
Cumulative Quantity Unchecked := CALCULATE ( SUM ( Transactions[Quantity] ), FILTER ( ALL ( 'Date'[Date] ), 'Date'[Date] <= MAX ( 'Date'[Date] ) ) )
|
2017/07/23 更新:
B列公式可以為:
1 Cumulative Quantity := 2 CALCULATE ( 3 SUM ( Transactions[Quantity] ), 4 FILTER ( 5 ALL ( 'Date'[Date] ), 6 'Date'[Date] <= MAX ( 'Date'[Date] ) 7 ) 8 ,Transactions 9 )
這個效果跟上面的結果是一樣的,原理是跟FilterContext有關,日期表根據Transactions表過濾掉沒有數據的日期。
玩起來:
要把玩上面的PowerBI請戳上(最終PowerBI效果)
擴展:
如何評估庫存總價值,請見:DAX/PowerBI系列 - 累計總計(Cumulative Total) - 庫存總價值
參考文章: