AVERAGEX 函数丨移动平均

在实际销售中,经常能遇到中国式老板的需求。比如说,我有一份最近的销售清单。

BOSS:我要看最近这5天的销售额平均值!

白茶:没问题,EASY!

BOSS:我还要看最近7天的!

白茶:OK,没问题!

BOSS:我还要你给我预测一下咱的销售趋势!

白茶:......(内心无数次想掀翻桌子)好。

这就是实际的情况,为了应对烦不胜烦的平均需求,我们该怎样进行呢?

这是一份案例数据,连续的,日期没有中断的。将其导入PowerBI中。

看到这里,有的小伙伴会问了,那我日期要是不连续的该怎么进行呢?这个过一段时间白茶会继续讲解,咱先来了解基础。

(示例文件会放到知识星球中,小伙伴们可以搜索“PowerBI丨需求圈”,文章结尾处会有二维码。)

结果如图:

老规矩,建立日期表,建立模型关系,这里就不赘述了。现将原始数据放入折线图中查看。结果如下:

这就是我们需要处理的数据。前期准备工作完成,咱来看看涉及到的知识点。

AVERAGEX函数:

语法=
AVERAGEX(<table>,<expression>)

第一参数是一个表,第二参数是这个表对应每一行的值,可以是表达式,但是结果必须是标量值。

需要注意的是,这是一个迭代函数,会对表中的数据逐行计算。

DATESINPERIOD函数:

语法=
DATESINPERIOD(<dates>,<start_date>,<number_of_intervals>,<interval>)

返回的结果是一段时间。

第一参数是一组日期列;

第二参数代表开始的日期;

第三参数代表移动的间隔;

第四参数代表移动单位,可以是DAY、MONTH、QUARTER、YEAR。

涉及到的相关知识介绍完毕,编写如下代码:

基础代码:

销售 =
SUM ( '示例'[销售金额] )

移动平均代码:

移动平均 =
AVERAGEX ( DATESINPERIOD ( '日期表'[Date], MAX ( '日期表'[Date] ), -7, DAY ), [销售] )

放入折线图中进行对比:

这样的话就求出来7天的移动平均值了。

这里解释一下代码含义:

DATESINPERIOD函数在这里是选定最新日期,向前移动7天。每7天算作一组。

[销售]是为每组时间段匹配相关计算值。

AVERAGEX函数求出每组[销售]的算数平均值。

但是有的小伙伴就会说了,白茶,你不是说移动么?移动结果呢?

别急,还没结束,咱们继续。

在建模窗口视图下添加“参数”,填写自己的数据参数,点击确定。

修改刚才的公式如下:

移动平均2 =
AVERAGEX (
    DATESINPERIOD ( '日期表'[Date], MAX ( '日期表'[Date] ), - [移动平均 值], DAY ),
    [销售]
)

放在折线图中对比,结果如图:

图中黄线是之前写的代码;红线是移动平均。
学会移动平均,告别BOSS的平均需求!
(BOSS:好!干得漂亮!)

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。

请在PC端查看,有部分图片无法在移动端显示。
PowerBI丨白茶