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

如何编写DAX度量值返回最小求和值对应的ID?

问题修复与DAX度量值优化

原度量值问题分析

你尝试的Min_value_id报错,核心原因是CALCULATE的筛选条件不能直接使用聚合函数(如SUM(count))与变量做比较——CALCULATE的筛选器作用于行级数据,无法直接识别聚合后的结果。

另外,原Min_value硬编码了id=1和id=2,后续若新增ID,度量值会失效,建议先优化为通用写法。

优化后的Min_value度量值

Min_value = 
VAR ID_Summary = SUMMARIZE('你的表名', '你的表名'[id], "@TotalCount", SUM('你的表名'[count]))
RETURN MINX(ID_Summary, [@TotalCount])

该写法通过SUMMARIZE生成每个ID对应的count求和表,再用MINX提取最小值,适配任意数量的ID。

正确的Min_value_id度量值

场景1:仅存在一个ID对应最小值

Min_value_id = 
VAR ID_Summary = SUMMARIZE('你的表名', '你的表名'[id], "@TotalCount", SUM('你的表名'[count]))
VAR Min_Total = MINX(ID_Summary, [@TotalCount])
RETURN MAXX(FILTER(ID_Summary, [@TotalCount] = Min_Total), [id])

逻辑说明:

  1. 用SUMMARIZE生成每个ID的count求和表
  2. 计算最小求和值Min_Total
  3. 筛选出求和值等于Min_Total的ID,用MAXX返回对应的ID(若有多个匹配,返回最大的ID)

场景2:存在多个ID对应最小值(返回所有匹配ID)

如果需要处理多个ID求和相同且均为最小值的情况,可使用CONCATENATEX拼接结果:

Min_value_ids = 
VAR ID_Summary = SUMMARIZE('你的表名', '你的表名'[id], "@TotalCount", SUM('你的表名'[count]))
VAR Min_Total = MINX(ID_Summary, [@TotalCount])
RETURN CONCATENATEX(FILTER(ID_Summary, [@TotalCount] = Min_Total), [id], ", ")

测试验证

基于你提供的数据集:

countid
2001
4002
4001
5002
  • Min_value返回600(ID=1的求和结果)
  • Min_value_id返回1,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:54:49