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

Power BI中用DAX对比筛选表 按Case_ID判断StatusA与StatusB先后顺序

Power BI 案件状态先后对比实现方案

前置配置

  • 首先确认表关系:建立Cases[Case_ID]与Statuses[Case_ID]的一对多关联(Statuses表默认包含Case_ID字段,用于关联对应案件)。

方案一:Cases表新增计算列(适合静态固化结果,支持后续切片筛选)

直接在Cases表新建计算列,输入以下DAX公式:

更早发生的状态 = 
// 提取当前案件StatusA对应的序号
VAR StatusA_序号 = LOOKUPVALUE(Statuses[Status_Number], Statuses[Case_ID], [Case_ID], Statuses[Status_Type], "StatusA")
// 提取当前案件StatusB对应的序号
VAR StatusB_序号 = LOOKUPVALUE(Statuses[Status_Number], Statuses[Case_ID], [Case_ID], Statuses[Status_Type], "StatusB")
RETURN
SWITCH(
    TRUE(),
    // 两个状态都不存在返回空
    ISBLANK(StatusA_序号) && ISBLANK(StatusB_序号), BLANK(),
    // 仅存在StatusB返回StatusB
    ISBLANK(StatusA_序号), "StatusB",
    // 仅存在StatusA返回StatusA
    ISBLANK(StatusB_序号), "StatusA",
    // 序号更小的状态更早发生
    StatusA_序号 < StatusB_序号, "StatusA",
    "StatusB"
)

该公式完全适配业务规则:同一个Case下每个状态仅出现一次,LOOKUPVALUE不会返回多值错误,测试示例中Case345677返回StatusA,Case345678返回StatusB,符合预期。

方案二:新建度量值(适合动态场景,可随切片器筛选条件变化)

如果需要支持动态切换对比的状态类型,可使用度量值实现:

更早发生的状态 = 
VAR 当前选中案件 = SELECTEDVALUE(Cases[Case_ID])
VAR StatusA_序号 = CALCULATE(MAX(Statuses[Status_Number]), Statuses[Status_Type] = "StatusA")
VAR StatusB_序号 = CALCULATE(MAX(Statuses[Status_Number]), Statuses[Status_Type] = "StatusB")
RETURN
SWITCH(
    TRUE(),
    ISBLANK(StatusA_序号) && ISBLANK(StatusB_序号), BLANK(),
    ISBLANK(StatusA_序号), "StatusB",
    ISBLANK(StatusB_序号), "StatusA",
    StatusA_序号 < StatusB_序号, "StatusA",
    "StatusB"
)

效果展示

在表格视觉对象中拖拽Cases[Case_ID]和上述创建的计算列/度量值,即可直接得到按Case_ID分组的对比结果。如果后续需要对比其他状态,仅需修改公式中对应Status_Type的文本值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:39:03