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

DAX条件逻辑实现:按ID将指定状态替换为xx

DAX实现按ID替换状态逻辑

需求说明

给定包含id、case、status字段的表,需实现以下逻辑:

  • 对每个id分组,若组内同时存在status为xx和yy的记录
  • 将该id下所有status为yy的记录替换为xx,其他状态保持不变

示例数据

原始表

id  case  status
0    1       xx
0    555     yy
0    125     zz
2     87     yy
2     nn     xx

期望结果

id   case    status
0     1        xx
0     555      xx
0     125      zz
2     87       xx
2     nn       xx

DAX解决方案

在目标表中添加计算列,使用以下DAX表达式(将YourTable替换为实际表名):

New Status = 
VAR CurrentID = 'YourTable'[id]
VAR HasXX = CALCULATE(COUNTROWS('YourTable'), 'YourTable'[id] = CurrentID, 'YourTable'[status] = "xx") > 0
VAR HasYY = CALCULATE(COUNTROWS('YourTable'), 'YourTable'[id] = CurrentID, 'YourTable'[status] = "yy") > 0
RETURN
IF(
    HasXX && HasYY && 'YourTable'[status] = "yy",
    "xx",
    'YourTable'[status]
)

代码解释

  1. CurrentID:获取当前行的id值,用于锁定当前分组
  2. HasXX:判断当前id分组内是否存在status为xx的记录
  3. HasYY:判断当前id分组内是否存在status为yy的记录
  4. 最终逻辑:若当前分组同时包含xx和yy,且当前行状态为yy,则返回xx;否则保留原状态值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:04:58