通过对周进行编号计算周环比(WOW)
今天我们和大家一起看一下如何通过对周进行编号,来计算周环比(WOW)。
先来看一下我们的示例模型:
模型由销售记录表和日期表组成,我们已经创建了销售金额的度量值:
销售金额:=SUM([金额])
接下来我们在日期表里对周进行编号。最简单的编号方式是通过WEEKNUM进行,但这个方法会遇到跨年的问题-如果一周跨两年则无法正常计算。所以我们今天介绍另外一种方法:
先通过WEEKDAY把周几的信息提取出来:
=WEEKDAY('日期表'[日期],2)
注意WEEKDAY的第二个参数选2,每周从周一开始,这样符合中国用户的习惯。
接下来我们再通过公式提取出每周对应的周开始日期:
=CALCULATE(MAX('日期表'[日期]),FILTER(ALL('日期表'),'日期表'[第几周]=1&&'日期表'[日期]<=EARLIER('日期表'[日期])))
示例的日期表是从2014年1月1日开始,所以对于前几天没有周开始日期,这个不影响我们后面的周编号,所以忽略即可。
有了周开始日期,我们就可以通过对该日期排序来计算周编号了:
=RANKX('日期表','日期表'[周开始日期],'日期表'[周开始日期],ASC,Dense)
注意升序(ASC)和连续排序(Dense)的参数使用。
这样我们就得到了日期表里所有日期的连续周排序编号,依据此编号可以进行关于周的计算。
要注意一点,如果一周分别在两个月或两年的情况,为了不让周销售额被切片,我们可以对周销售额进行如下书写:
周销售额:=IF(HASONEVALUE('日期表'[周编号]),CALCULATE('销售记录'[销售金额],FILTER(ALL('日期表'),'日期表'[周编号]=VALUES('日期表'[周编号]))))
大家注意看下图第53周的数据,该周横跨了2014和2015年,而我们的周销售额可以正确显示整周的数字。
同理,我们计算上周销售额:
上周销售额:=IF(HASONEVALUE('日期表'[周编号]),CALCULATE('销售记录'[销售金额],FILTER(ALL('日期表'),'日期表'[周编号]=VALUES('日期表'[周编号])-1)))
周环比:
周环比:=DIVIDE('销售记录'[周销售额]-'销售记录'[上周销售额],'销售记录'[上周销售额])
下面是最终的效果:
有了连续的周编号后,我们即可进行多种基于周的时间智能计算。这就是我们今天的分享内容,更多Power Pivot时间智能函数的用法请参考我们的视频课程- Excel Power Pivot数据建模分析(进阶篇)。
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、Power Pivot相关文章、资讯。欢迎小伙伴儿们转发分享~
*PowerPivot工坊原创文章,欢迎转载,请注明出处