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

求助:将Excel多条件平均公式转换为DAX公式(Power Query场景)

解决方案:DAX计算分组下符合条件的平均Compa-Ratio

一、添加到表中的计算列(对应原Excel公式逻辑)

如果需要直接在数据表中新增一列显示分组平均值,用以下DAX计算列公式:

= IF(
    AND(
        ISNUMBER([Compa Ratio]),
        [New Hire] = "New Hire"
    ),
    CALCULATE(
        AVERAGE('mytable'[Compa Ratio]),
        ALLEXCEPT('mytable', 'mytable'[Country and Job Code]),
        'mytable'[New Hire] = "New Hire",
        ISNUMBER('mytable'[Compa Ratio])
    ),
    ""
)

关键说明:

  • ALLEXCEPT 锁定当前行的Country and Job Code分组,确保只计算同一分组内的数据,解决你之前无法按分组计算的问题
  • ISNUMBER 同时排除空值和"no data"文本,满足你要求的有效Compa-Ratio条件
  • 外层IF完全对应原Excel公式逻辑:仅当当前行是有效New Hire时显示分组平均值,否则返回空

二、用于报表的度量值(透视表/可视化场景)

如果是在Power BI或Excel数据透视表中使用,推荐用度量值,它会自动根据报表的分组上下文计算:

分组平均Compa-Ratio = 
CALCULATE(
    AVERAGE('mytable'[Compa Ratio]),
    'mytable'[New Hire] = "New Hire",
    ISNUMBER('mytable'[Compa Ratio])
)

使用时只需将Country and Job Code拖到透视表的行/列区域,度量值会自动输出对应分组的平均值。

你之前尝试的问题原因:

你写的AVERAGEX+FILTER没有限定分组上下文,计算的是全表所有符合条件的New Hire的平均值,而非当前分组的。通过ALLEXCEPT(计算列)或利用度量值的自动上下文(报表场景),就能实现分组计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:47:29