通过使用Power Pivot中的时间智能函数,能让我们快速地进行关于时间的计算。比如YTD(年初至今累计)、QTD(季度初至今累计)、MTD(月初至今累计),或YOY同比,MOM环比等计算。而这些在传统的Excel中是比较难计算的。
今天我们就来看一下如何计算YTD(年初至今累计),以及如何计算财年的YTD,包括如果财年从3月1日开始如何规避闰年的问题。
要想在Power Pivot中实现时间智能的计算,先要向模型添加一张日期表。
日期表的建立请参考如下要求:
至少包含一列不重复且连续的日期列,也就是每一行是一天。
日期表里的日期区间要大于事实表里的日期区间。
事实表的日期列要和日期表的日期列建立关系。
开始计算前要在“设计”选项卡下“标记为日期表”。
写公式之前,我们先看一下示例模型。在模型中只有销售记录表和日期表
销售记录表里有一个度量值-销售总额(订单金额的求和)
针对自然年的YTD计算,我们可以直接使用TOTALYTD函数:
在这里我们只需要输入两个参数即可:
指定计算的表达式,这里为[销售总额]
指定日期表的日期列
看下生成的计算结果:
大家可以看到,YTD销售额从1月开始累加,直到年底。最后4个月因为尚未发生交易,所以YTD值是一样的。
这是自然年的YTD计算方法,接下来我们看一下财年的YTD计算方法。我们以财年从7月1日开始为例。
针对公司自定义财年的情况,我们需要指定TOTALYTD的另外一个参数 -财年结束日。
通过对财年结束日的指定,TOTALYTD按照我们需要的方式从7月1号开始计算累计值。结果如下:
是不是非常简单方便?下面我们再深入一下。
假如某公司的财年是3月1日开始,由于闰年的影响,我们无法在公式中指定财年结束日是2月28还是2月29时该怎么办?
解决这个问题我们需要了解TOTALYTD的另外一种写法。大家可以把TOTALYTD看成一个封装好的函数,它的计算原理如下:
使用CALCULATE函数对[销售总额]进行计算,且通过筛选函数FILTER对日期表的筛选限定计算结果:
首先通过ALL限定基于整张日期表进行计算。
在日期表里的财年等于所选时间里的最大财年。限制了计算在同一财年进行。(注意此处的财年应在日期表中提前预设好从3月1日开始)
日期表里的日期小于等于所选时间里的最大日期。实现了从年初至所选时间的限制。
我们再看一下计算结果,YTD的计算从3月开始累计。
今天的分享内容就到这里,更多Power Pivot时间智能函数的用法请参考我们的视频课程 - Excel Power Pivot数据建模分析(进阶篇)。
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”

长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、Power Pivot相关文章、资讯。欢迎小伙伴儿们转发分享~
