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

按ID判断DAX度量值是否<0,选择对应度量值的实现问题

按ID分组判断DAX度量值的分支逻辑实现

要实现按ID单独检查、统一应用度量的逻辑,核心是先判断当前ID对应的所有行中是否存在度量值<0的情况,再据此返回对应的measure。以下是可行的DAX写法:

Final Measure = 
-- 获取当前上下文的ID值
VAR CurrentID = SELECTEDVALUE('你的表名'[ID])
-- 判断当前ID下是否存在度量值<0的行
VAR HasNegativeEntry = 
    CALCULATE(
        -- 取当前ID下度量值的最小值,若最小值<0则说明存在负数
        MIN([你的原始度量值]),
        -- 保留ID筛选,移除其他列的上下文筛选,确保计算的是该ID的所有行
        ALLEXCEPT('你的表名', '你的表名'[ID])
    ) < 0
-- 根据判断结果返回对应度量
RETURN
    IF(HasNegativeEntry, [measure2], [measure1])

关键说明:

  • CurrentID:用SELECTEDVALUE获取当前视觉对象(比如矩阵、表格)中当前行的ID值,确保判断是针对单个ID的。
  • ALLEXCEPT:这里用来移除除ID列外的所有筛选上下文,保证CALCULATE计算的是该ID对应的全部行数据,而不是当前行的单个值。
  • 用MIN([你的原始度量值]) < 0替代COUNTROWS(FILTER(...)) > 0,逻辑更简洁——只要该ID下的最小度量值为负,就说明存在负数行。

如果你的场景中需要保留其他全局筛选(比如切片器的筛选),可以把ALLEXCEPT换成ALLSELECTED('你的表名')后再追加ID筛选,写法如下:

Final Measure = 
VAR CurrentID = SELECTEDVALUE('你的表名'[ID])
VAR HasNegativeEntry = 
    CALCULATE(
        MIN([你的原始度量值]),
        ALLSELECTED('你的表名'),
        '你的表名'[ID] = CurrentID
    ) < 0
RETURN
    IF(HasNegativeEntry, [measure2], [measure1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:53:13