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

DAX中两列按不同计算规则相除失效问题求助

解决DAX DIVIDE函数计算结果不符合预期的问题

问题分析

你当前的公式AVG = DIVIDE('Backlog items'[score],COUNTROWS(DISTINCT('Backlog items'[Category])))存在两个核心问题:

  • 分子未做显式聚合:直接引用'Backlog items'[score]列时,DAX会根据当前可视化的上下文返回单行的score值(而非所有score的总和),如果你的表格是逐行展示每个Backlog条目,分子就是当前行的小数值,除以类别数后自然得到类似0.01的结果。
  • 上下文未明确:分母COUNTROWS(DISTINCT('Backlog items'[Category]))的计算范围依赖可视化的上下文,如果是按Category分组展示,分母会返回1,结果就是该类别的单行score值。

修正方案

根据你预期的0.67结果(总分÷不同类别数),需要修改分子为显式聚合,并按需明确上下文:

方案1:计算当前上下文内的总分÷对应类别数

如果你的可视化是按整体或分组展示,需要聚合所有score值:

AVG = DIVIDE(SUM('Backlog items'[score]), COUNTROWS(DISTINCT('Backlog items'[Category])))
  • SUM('Backlog items'[score]):聚合当前上下文内所有条目的score总和
  • COUNTROWS(DISTINCT('Backlog items'[Category])):统计当前上下文内的不同类别数量

方案2:计算全局总分÷全局不同类别数(不受可视化分组影响)

如果需要不管任何分组,始终用整个表的总分除以全局类别数,使用ALL函数清除上下文:

AVG = DIVIDE(SUM('Backlog items'[score]), COUNTROWS(DISTINCT(ALL('Backlog items'[Category]))))

额外排查点

  • 确认score列的数据类型为数值型,避免因格式错误导致计算异常
  • 检查可视化的行/列分组设置,确保上下文符合你的计算逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:03:15