Power BI 度量值 | 滚动聚合

上一篇文讲了累计聚合,这篇文章继续讲一下滚动聚合,比如常用的MAT计算,Moving Annual Total,滚动年度总计,即向前滚动12月的合计数。

滚动年度求和,也经常用于财务上的滚动预算,看完这篇文章,你以后会很轻松的计算出需要的数据了。


模拟一份2018年1月至2019年7月的订单数据,

利用CALENDARAUTO生成一份日期表,按日期列建立关系,那么如何计算向前滚动12月的销售额合计呢?

其实很简单,新建度量值,

MAT  =
IF(MIN('日期表'[日期])<=[订单最大日期],
CALCULATE(
[收入],
DATESINPERIOD(
'日期表'[日期],
LASTDATE('日期表'[日期]),-1,YEAR)
)
)
这里直接用了上篇文章的思路,先判断最大订单日期,这样就可以避免最新订单日期之后的计算。

这个度量值的关键是DATESINPERIOD函数的使用,它用来返回移动一定间隔的时间段,在上面的度量值中,正好利用它返回向前滚动一整年的日期。

关于这个时间智能函数的用法,可以参考函数卡片:

结果如下:

因为是从2018年1月才开始有数据,所以2018年12月之前的滚动求和都是不满12个月的数据。如果要求不满12月,就不要显示数据,从达到12个月以后再开始计算,可以优化一下这个度量值,

MAT 优化 =
IF(MIN('日期表'[日期])<=[订单最大日期],
CALCULATE(
IF(
COUNTROWS(
FILTER(VALUES('日期表'[月份]),[收入]>0)
)=12,
[收入]),
DATESINPERIOD(
'日期表'[日期],
LASTDATE('日期表'[日期]),-1,YEAR)
)
)

结果如下:

除了滚动求和,求移动平均同样是很常见的需求,求往前推一年的平均数,只要把上面度量值中,CALCULATE的第一个参数,改成使用AVERAGE来聚合。

在实际计算时,求往前推一年的平均值并不是必须要求满12个月才开始计算,所以直接使用上面第一个度量值的写法,

滚动平均 年度=
IF(MIN('日期表'[日期])<=[订单最大日期],
CALCULATE(
AVERAGE('订单表'[销售额]),
DATESINPERIOD(
'日期表'[日期],
LASTDATE('日期表'[日期]),-1,YEAR)
)
)

上面的例子都是按照一年计算滚动粒度的,如果你需要其他数量和粒度的计算,正常情况下更改一下DATESINPERIOD函数的参数就行了。


(0)

相关推荐

  • PP-DAX:如何实现模糊匹配的动态计算?

    这是群里朋友提的一个问题:用CALCULATE函数写动态度量值的时候,是否可以计算包含某个文本的内容? 当然,Power Pivot里是不支持使用*号作为通配符的.所以,需要换个方法,比如,以前我们讲 ...

  • Calculate计值流,DAX最重要知识点,没有之一!【兼5月送书福利】

    - 1 - 所有对Calculate函数的疑问,几乎全都跟它的计值流有关系. 首先,看一个群里朋友问的问题:求各菜品名称的最大日期对应的销售量.  1.为什么先写好度量[最大日期],然后在Calcul ...

  • Power BI 度量值 | 累计聚合

    经常碰到本年至今.本月至今的数据计算,其实还有一类计算是,从历史最早日期至今的累计计算,比如从开业到现在总共卖出了多少件商品,累计实现了多少销售额等. 本年累计称为YTD,历史至今的累计是不是可以称为 ...

  • Power BI度量值和新建表,到底有什么区别?

    PowerBI中,有三个地方可以使用DAX,分别是度量值.新建列和新建表,这三个功能并成一排摆放在这里,如图所示, 之前的文章中曾介绍了度量值和计算列的异同(收藏 | Power BI计算列和度量值, ...

  • 收藏 | Power BI计算列和度量值,一文帮你搞清楚

    对于初学者,总是会把度量值和计算列搞混,我也经常碰到这样的问题,有些星友用文章中的代码总是报错,发给我一看,才知道TA把本来是度量值的DAX用在了计算列上,或者相反. 即使是已经学习了很长时间的人,对 ...

  • 如何在Power BI文件之间批量复制度量值?

    文/瓶子 目前从事职考行业的数据运营,喜欢钻研power bi和excel来实现自动化. 这几天在星球里面分享关于Tabular Editor内容比较多,应星主邀请,编辑一篇关于TabularEdit ...

  • Power BI如何对度量值分组统计?

    经常碰到有同学问,如何对度量值进行分组统计,比如有一个环比度量值,怎么将环比划分为几个档次,然后统计数量分别是多少? 其实度量值只是一个值,并不存在对它分组的问题,真正的问题应该是,如何对某个维度分组 ...

  • 什么是雪花维度?Power BI里如何降低模型复杂度?

    关系模型是Power BI的独特优势,但是,在日常数据分析中,过多的表间关系,会使得数据模型变得非常复杂而且难以分析. 因此,在合适的情况下,借鉴其他BI工具(如SAP BW等)的"并表&q ...

  • 优先级和度量值的关系

    优先级和度量值的关系

  • PBI-基础入门:通过一个简单的案例体会Power BI的数据分析过程

    小勤:用个例子给我讲讲Power BI怎么用的呗. 大海:好吧,Power Query你学了那么多,Power Pivot也基本入门了,Power BI也可以同步开始学了,反正PQ和PP的知识除了操作 ...

  • PBI-基础入门:Power BI是什么?

    按照微软的艰涩定义(不喜欢看的可直接略过本段):Power BI 是软件服务.应用和连接器的集合,它们协同工作以将相关数据来源转换为连贯的视觉逼真的交互式见解.无论你的数据是简单的 Excel 电子表 ...