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

Power BI中基于多列变量的条件判断:统一货运全日期状态

在Power BI中实现按货运批次同步状态的计算列/度量值

计算列实现

假设你的数据表名为货运表,包含货运ID(标识每一批货运)、记录日期(每条记录的日期)、状态(Open/Closed)字段。创建计算列的DAX公式如下:

货运最终状态 = 
VAR MaxShipmentDate = CALCULATE(MAX('货运表'[记录日期]), ALLEXCEPT('货运表', '货运表'[货运ID]))
VAR LatestStatus = CALCULATE(MAX('货运表'[状态]), '货运表'[记录日期] = MaxShipmentDate, ALLEXCEPT('货运表', '货运表'[货运ID]))
RETURN
IF(UPPER(LatestStatus) = "CLOSED", "close", "Open")

公式说明

  1. MaxShipmentDate:通过ALLEXCEPT保留当前货运ID的上下文,计算该批次的最新记录日期。
  2. LatestStatus:基于第一步得到的最新日期,筛选出该批次对应日期的状态。
  3. 最后通过IF判断,若最新状态为Closed则返回"close",否则返回"Open";用UPPER统一大小写是为了避免数据中状态大小写不一致导致的判断错误。

度量值实现

如果需要用度量值(适用于可视化场景,比如在报表中动态展示),可以使用以下DAX公式:

货运最终状态_度量值 = 
VAR CurrentShipmentID = SELECTEDVALUE('货运表'[货运ID])
VAR MaxShipmentDate = CALCULATE(MAX('货运表'[记录日期]), '货运表'[货运ID] = CurrentShipmentID)
VAR LatestStatus = CALCULATE(MAX('货运表'[状态]), '货运表'[货运ID] = CurrentShipmentID, '货运表'[记录日期] = MaxShipmentDate)
RETURN
IF(UPPER(LatestStatus) = "CLOSED", "close", "Open")

公式说明

  1. CurrentShipmentID:获取当前可视化上下文选中的货运ID。
  2. 后续步骤与计算列逻辑一致,基于当前货运ID找到最新日期和对应状态,返回统一结果。
  3. 若在表格中每行展示该度量值,需确保货运ID列在视觉对象中,以保证上下文正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:50:37