DAX/PowerBI系列 - 累计总计(Cumulative Total, Running Total)

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 出来,噔噔噔噔~~~)

 https://app.powerbi.com/view?r=eyJrIjoiYWMzOTVlNTgtZTMzYS00NGFiLWIxMTUtNzQ4ZWJjOGNjMjI0IiwidCI6ImQxYWY4NDdiLTJjZTEtNDRjYi1iYjUwLWQ1ODAyYmI0M2M4YiIsImMiOjEwfQ%3D%3D

 

 

数据模型:

 

 

要点:

  • 如何得到有业务数据的最后日期
  • 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) - 库存总价值 

 

 

参考文章:

http://www.daxpatterns.com/cumulative-total/

posted @ 2017-03-29 11:11  马丁叔叔  阅读(11434)  评论(0编辑  收藏  举报