还记得之前白茶写过关于移动平均的内容么?当时白茶曾经说过,实际需求中,难免会遇到销售挂蛋的时候(也就是当天没有销售的歇业状态),那这种情况该如何去处理呢?
先上示例文件:
这是白茶本期使用的案例文件,可以很清楚的看到有很多日期是断档的,将其导入PowerBI中。
(示例文件会放到知识星球中,小伙伴们可以搜索“PowerBI丨需求圈”,文章结尾处会有二维码。)
结果如图:
之后就是老套路,建立日期表,因为日期有断档,而很多时间智能函数对于日期的要求都是连续不间断的。
输入如下代码:
建立模型关系,结果如图:
编写基本的代码:
好了,前期的准备工作结束,可以开始本期的问题探究了。
先按照之前的操作,编写移动平均代码:
结果如下:
小伙伴们,看明白没?白茶的案例文件有很多挂蛋的日期,但是移动平均却把这部分日期算进去了。比如头两天的结果,(396+80)/2结果是238,这没问题,但是我1月3日没有销售,那么结果就不能包含它。结果显示的不合理,那么该如何进行呢,跟着白茶的思路走。
(可能有的小伙伴需要这种,都是看需求的,白茶说一下另一种需求办法。)
有请TOPN函数!
编写如下代码:
这里还有另一种写法,就是将MAX替换成VALUES:
先来看看结果:
这次的结果没有任何问题,非常完美!总计栏显示最后一次移动平均值。
(感谢@冬哥,膜拜)
这里解释一下代码含义:
TIM提取日期中最新的日期,将其转化为常量。
TIM2利用TOPN函数,返回前三行,从小于最新日期的日期中提取;由于TOPN函数自带上下文转换,需要在MAX(VALUES)外面嵌套一层CALCULATE函数将TOPN函数第三参数转换上下文。
AVE是利用AVERAGEX函数求出算数平均值。
最后,输出结果。
那么,我需要移动平均,参数随意变动那种,可以么?
当然可以!
选择新建参数,输入相关信息,点击确定。
修改编码如下:
结果如图:
小伙伴们,看明白了么?
(白茶:T^T还要继续做报表,加油!)
这里是白茶,一个PowerBI的初学者。
ID:Storysming
下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。(这个星球里面有白茶之前所有的案例文件。)
点在看,不孤独
领取专属 10元无门槛券
私享最新 技术干货