You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DAX实现Excel的AVEDEV函数?计算180天内Fail Rate 2的平均绝对偏差

复现Excel AVEDEV函数的DAX度量值(计算过去180天「Fail Rate 2」的平均绝对偏差)

Excel的AVEDEV函数核心逻辑是计算数据点与平均值的绝对差的平均值,DAX中无直接等效内置函数,可通过组合DAX函数手动实现,以下分两种场景给出解决方案:

场景1:「Fail Rate 2」为数据表物理列

若「Fail Rate 2」是模型中某张表的物理列,使用如下度量值:

AVEDEV Fail Rate 2 (Last 180 Days) = 
VAR Last180DaysDates = DATESINPERIOD('Date'[Date], TODAY(), -180, DAY)
VAR FailRateValues = CALCULATETABLE(VALUES('YourTable'[Fail Rate 2]), Last180DaysDates)
VAR AvgFailRate = AVERAGE('YourTable'[Fail Rate 2])
VAR AbsoluteDeviations = ADDCOLUMNS(FailRateValues, "@AbsDev", ABS([Fail Rate 2] - AvgFailRate))
RETURN
AVERAGEX(AbsoluteDeviations, [@AbsDev])

代码说明:

  • Last180DaysDates:通过DATESINPERIOD获取过去180天的日期范围(需模型包含标准日期表'Date')
  • FailRateValues:筛选出过去180天内所有非重复的「Fail Rate 2」值
  • AvgFailRate:计算该时间段内「Fail Rate 2」的平均值
  • AbsoluteDeviations:为每个值计算与平均值的绝对偏差
  • AVERAGEX:迭代计算所有绝对偏差的平均值,与ExcelAVEDEV结果一致

场景2:「Fail Rate 2」为DAX度量值

若「Fail Rate 2」本身是DAX度量值(非物理列),需调整代码以迭代每日度量值结果:

AVEDEV Fail Rate 2 (Last 180 Days) = 
VAR Last180DaysDates = DATESINPERIOD('Date'[Date], TODAY(), -180, DAY)
VAR DailyFailRates = CALCULATETABLE(
    ADDCOLUMNS(
        VALUES('Date'[Date]),
        "@DailyFailRate", [Fail Rate 2]
    ),
    Last180DaysDates
)
VAR AvgFailRate = AVERAGEX(DailyFailRates, [@DailyFailRate])
VAR AbsoluteDeviations = ADDCOLUMNS(DailyFailRates, "@AbsDev", ABS([@DailyFailRate] - AvgFailRate))
RETURN
AVERAGEX(AbsoluteDeviations, [@AbsDev])

代码说明:

  • DailyFailRates:迭代过去180天的每个日期,计算当日「Fail Rate 2」度量值结果,生成包含日期与对应值的表
  • 后续步骤与场景1一致,基于每日度量值结果计算平均值和绝对偏差

内容的提问来源于stack exchange,提问作者dapm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:57:32