Rolling/Moving 年月平均

Rolling/Moving average by month over years

希望通过 3 年内的特定月份(而不是每月滚动平均值)获得多年来的移动平均值和总和。我想按月查看我们的业务趋势,并希望将平均值作为基线。

即:

到目前为止,我所能做的就是从选定的年份获得 3 年的 SUM,甚至那也没有了。

例如:所选月份 = 2013 年 1 月,汇总包括 2011 年 2 月 --> 2013 年 1 月的所有月份。相反,我只需要这些年的 1 月。

尝试测量的日期:

CALCULATE([total], DATESINPERIOD(Time[Pk_Date], LASTDATE(Time[PK_Date]),-3,Year ) )

目标是从所选年份回滚 3 年

在这种情况下滚动平均和 运行 总数应该是:

2013 平均 = 53 |总和 = 158

2014 年平均 = 55 |总和 = 165

2015 年平均 = 52 |总和 = 157

感谢您的帮助!

你太接近了,你只是错过了额外的过滤器来过滤你选择的日期段到所选的月份数。

首先,确保您的日期中有一个月份数字列 table。我们假设它叫做 MonthNumber

接下来,创建一个度量来捕获您选择的月份。

ChosenMonth :=
MAX ( Time[MonthNumber] )

由于数据透视表 table 中的每一行都有一个月,因此这将 return 那个月作为衡量标准,以便您可以在以后的计算中使用它。您也可以使用 SUM()MIN() 等,因为只有一个值。

RollingAverage :=
CALCULATE (
    [Total],
    DATESINPERIOD (
        Time[PK_Date],
        LASTDATE ( Time[PK_Date] ),
        -3,
        YEAR
    ),
    FILTER (
        VALUES ( Time[MonthNumber] ),
        Time[MonthNumber] = [ChosenMonth]
    )
)

这就是为什么为选择的月份等事物创建中间的隐藏度量很重要,这样您就可以重新应用 DAX 确实没有等效项的一组日期的上下文住宿.