Power Pivot时间智能之计算YTD(年初至今累计)

标签:
it教育时评杂谈 |
分类: 数据分析 |
通过使用Power Pivot中的时间智能函数,能让我们快速地进行关于时间的计算。比如YTD(年初至今累计)、QTD(季度初至今累计)、MTD(月初至今累计),或YOY同比,MOM环比等计算。而这些在传统的Excel中是比较难计算的。
今天我们就来看一下如何计算YTD(年初至今累计),以及如何计算财年的YTD,包括如果财年从3月1日开始如何规避闰年的问题。
http://www.agileex.com/upLoad/image/20170108/14838821553568845.jpg
要想在Power Pivot中实现时间智能的计算,先要向模型添加一张日期表。
http://www.agileex.com/upLoad/image/20170108/14838823792438901.png
日期表的建立请参考如下要求:
-
至少包含一列不重复且连续的日期列,也就是每一行是一天。
-
日期表里的日期区间要大于事实表里的日期区间。
-
事实表的日期列要和日期表的日期列建立关系。
-
开始计算前要在“设计”选项卡下“标记为日期表”。
http://www.agileex.com/upLoad/image/20170108/14838857029185881.jpg
写公式之前,我们先看一下示例模型。在模型中只有销售记录表和日期表
http://www.agileex.com/upLoad/image/20170108/14838857932738004.png
销售记录表里有一个度量值-
http://www.agileex.com/upLoad/image/20170108/14838858384579862.png
针对自然年的YTD计算,我们可以直接使用TOTALYTD函数:
http://www.agileex.com/upLoad/image/20170108/14838858802266691.png
在这里我们只需要输入两个参数即可:
-
指定计算的表达式,这里为[销售总额]
-
指定日期表的日期列
看下生成的计算结果:
http://www.agileex.com/upLoad/image/20170108/14838859406852659.png
大家可以看到,YTD销售额从1月开始累加,直到年底。最后4个月因为尚未发生交易,所以YTD值是一样的。
这是自然年的YTD计算方法,接下来我们看一下财年的YTD计算方法。我们以财年从7月1日开始为例。
http://www.agileex.com/upLoad/image/20170108/14838859842441099.jpg
http://www.agileex.com/upLoad/image/20170108/14838860424069547.png
通过对财年结束日的指定,TOTALYTD按照我们需要的方式从7月1号开始计算累计值。结果如下:
是不是非常简单方便?下面我们再深入一下。
http://www.agileex.com/upLoad/image/20170108/14838861224618040.jpg
假如某公司的财年是3月1日开始,由于闰年的影响,我们无法在公式中指定财年结束日是2月28还是2月29时该怎么办?
解决这个问题我们需要了解TOTALYTD的另外一种写法。大家可以把TOTALYTD看成一个封装好的函数,它的计算原理如下:
http://www.agileex.com/upLoad/image/20170108/14838861785627958.png
使用CALCULATE函数对[销售总额]进行计算,且通过筛选函数FILTER对日期表的筛选限定计算结果:
-
首先通过ALL限定基于整张日期表进行计算。
-
在日期表里的财年等于所选时间里的最大财年。限制了计算在同一财年进行。(注意此处的财年应在日期表中提前预设好从3月1日开始)
-
日期表里的日期小于等于所选时间里的最大日期。实现了从年初至所选时间的限制。
我们再看一下计算结果,YTD的计算从3月开始累计。
http://www.agileex.com/upLoad/image/20170108/14838862124153181.png