DAX 180天滚动平均偏差计算调整求助
解决滚动180天平均偏差的DAX调整方案
你的核心问题在于prev180变量的筛选逻辑未限定180天范围,只需在FILTER中补充日期下限条件即可实现需求。修改后的代码如下:
AVEDEV 180D = VAR CurrentMaxDate = MAX('Table'[Date]) VAR prev180 = FILTER( ALL('Table'), 'Table'[Date] <= CurrentMaxDate && 'Table'[Date] >= CurrentMaxDate - 180 ) VAR mean = AVERAGEX( prev180, ChangeQtyChangeQtyType[Fail Rate 2] ) RETURN DIVIDE( SUMX( prev180, ABS([Fail Rate 2] - mean) ), COUNTROWS(prev180) )
关键调整说明:
- 新增
CurrentMaxDate变量存储当前上下文的最大日期,提升代码可读性 - 在
FILTER中添加'Table'[Date] >= CurrentMaxDate - 180条件,严格限定计算范围为过去180天内的数据 - 保留
ALL('Table')以忽略当前筛选上下文,确保滚动计算的准确性
额外注意点:
- 若日期表存在不连续日期(如周末、节假日无数据),该逻辑依然有效,因为它基于日期差值判断,而非数据行数
- 若需避免无数据时返回错误值,可在RETURN前添加判断:
IF(COUNTROWS(prev180) = 0, BLANK(), ...)
内容的提问来源于stack exchange,提问作者dapm
相关产品推荐
相关产品推荐

