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

PowerBI DAX需求:按ID判断是否存在Closed状态并返回布尔值

DAX实现按ID判断是否存在"Closed"状态并返回每行结果

你可以通过DAX计算列实现这个需求,以下是两种常用的可行写法:

方法1:基于COUNTROWS的判断

新建计算列,公式如下:

is closed = 
CALCULATE(
    COUNTROWS(
        FILTER(
            '你的表名',
            '你的表名'[ID] = EARLIER('你的表名'[ID]) && '你的表名'[State] = "Closed"
        )
    ) > 0
)

逻辑说明

  • EARLIER('你的表名'[ID]) 锁定当前行的ID值,确保仅针对当前ID进行状态检查
  • FILTER 筛选出当前ID下所有状态为"Closed"的行
  • 用COUNTROWS统计筛选结果的行数,大于0则说明该ID存在"Closed"状态,返回TRUE,否则返回FALSE

方法2:基于CONTAINSROW的简洁写法

另一种更精简的实现方式:

is closed = 
CALCULATE(
    CONTAINSROW(
        '你的表名'[State],
        "Closed"
    ),
    ALLEXCEPT('你的表名', '你的表名'[ID])
)

逻辑说明

  • ALLEXCEPT('你的表名', '你的表名'[ID]) 保留当前ID的上下文,移除其他列的筛选影响
  • CONTAINSROW直接判断当前ID对应的State列中是否包含"Closed"值,存在则返回TRUE,否则返回FALSE

验证效果

将上述任一公式应用到你的表中,会得到与期望一致的输出:

IDStateis closed
1OpenTRUE
1ClosedTRUE
2OpenFALSE
2OpenFALSE
2OpenFALSE
3OpenTRUE
3ClosedTRUE
3ReopendTRUE
3OpenTRUE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:02:37