语法作用
计算基于最后可见日期向前推算指定周期的移动平均值。参数:expression(标量表达式/度量值), dateColumn(日期表的日期列), period(回溯周期数,如3), interval(时间粒度,可选文本值:DAY, MONTH, QUARTER, YEAR)。
XF.Analysis.MovingAverage(expression:expr,dateColumn:anyref,period:int64,interval:string)
函数代码
该函数的实现代码如下:
/// 计算基于最后可见日期向前推算指定周期的移动平均值。参数:expression(标量表达式/度量值), dateColumn(日期表的日期列), period(回溯周期数,如3), interval(时间粒度,可选文本值:DAY, MONTH, QUARTER, YEAR)
FUNCTION XF.Analysis.MovingAverage = (expression:expr,dateColumn:anyref,period:int64,interval:string) =>
SWITCH(
interval,
"DAY",
AVERAGEX(
DATESINPERIOD(dateColumn,LASTDATE(dateColumn),-period,DAY),
CALCULATE(expression)
),
"MONTH",
AVERAGEX(
DATESINPERIOD(dateColumn,LASTDATE(dateColumn),-period,MONTH),
CALCULATE(expression)
),
"QUARTER",
AVERAGEX(
DATESINPERIOD(dateColumn,LASTDATE(dateColumn),-period,QUARTER),
CALCULATE(expression)
),
"YEAR",
AVERAGEX(
DATESINPERIOD(dateColumn,LASTDATE(dateColumn),-period,YEAR),
CALCULATE(expression)
)
)
应用示例
计算销售额的过去3天的移动平均值。
XF.Analysis.MovingAverage(SUM('订单'[销售额]),'日期表'[日期],3,"DAY")
结果如下图所示:








