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

DAX技术问题:计算地域层级内度量值的平均值

DAX计算区域得分问题

数据背景

Geography表中:

  • RegionLevel2列存储区域(值为T100、T200、T300等)
  • TerrLevel1列存储地区(格式为G0101等),每个区域对应多个地区

已实现地区级度量值Score1(基于销售额计算,运行正常),需求是计算区域得分:对应区域下所有下属地区Score1的平均值。

尝试过的DAX公式

AVERAGEX(Geography, [Score1])

AVERAGEX(all(Geography[TerrLevel1]), [Score1])

AVERAGEX(VALUES(Geography[TerrLevel1]), [Score1])

CALCULATE( AVERAGEX(Geography, [Score1]),ALL(Geography[TerrLevel1]))

问题说明

上述公式均未得到正确结果,核心问题是未在当前区域的筛选上下文下,精准分组计算其下属地区的Score1平均值。补充:当前查询结果的表结构为:第一列是地区(G0101格式),第二列是对应地区的Score1,第三列是当前错误的计算结果。

解决方案

推荐使用以下DAX度量值,确保仅计算当前区域下所有地区的Score1平均值:

方案1(推荐)

区域得分 = 
CALCULATE(
    AVERAGEX(VALUES(Geography[TerrLevel1]), [Score1]),
    ALLEXCEPT(Geography, Geography[RegionLevel2])
)
  • ALLEXCEPT(Geography, Geography[RegionLevel2]):仅保留当前区域的筛选上下文,移除其他所有筛选(如地区筛选)
  • VALUES(Geography[TerrLevel1]):获取当前区域下的所有唯一地区
  • AVERAGEX:遍历这些地区,计算Score1的平均值

方案2

区域得分 = 
AVERAGEX(
    FILTER(
        ALL(Geography[TerrLevel1], Geography[RegionLevel2]),
        Geography[RegionLevel2] = MAX(Geography[RegionLevel2])
    ),
    [Score1]
)
  • ALL(Geography[TerrLevel1], Geography[RegionLevel2]):获取所有区域和地区的组合
  • FILTER:筛选出与当前区域匹配的所有地区
  • AVERAGEX:对筛选后的地区计算Score1的平均值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:08:12