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

PowerBI:基于筛选条件计算船舶港口事件同列时间差的度量值

PowerBI 可复用港口挂靠事件时间差度量值方案

需求概述

需创建可复用的DAX度量值,基于唯一Number列(对应单艘船舶的单次港口挂靠),计算任意两个指定事件的首个发生时间差(单位:小时),例如计算"Pilot on board inwards"到"All Fast"的耗时,且能快速适配其他事件组合。

数据前提

确保数据表中FromDate列已设置为日期时间类型,空值会被自动过滤;每个Number分组下,目标事件至少存在一条带有有效时间的记录。

可复用度量值实现

以下DAX代码通过变量参数化事件名称,只需修改事件名称即可复用:

事件时间差(小时) = 
VAR 起始事件 = "Pilot on board inwards"  // 替换为需要计算的起始事件名称
VAR 结束事件 = "All Fast"  // 替换为需要计算的结束事件名称
VAR 当前挂靠编号 = SELECTEDVALUE('你的数据表名'[Number])
VAR 起始时间 = 
    CALCULATE(
        MIN('你的数据表名'[FromDate]),
        '你的数据表名'[FieldName] = 起始事件,
        '你的数据表名'[Number] = 当前挂靠编号,
        NOT(ISBLANK('你的数据表名'[FromDate]))
    )
VAR 结束时间 = 
    CALCULATE(
        MIN('你的数据表名'[FromDate]),
        '你的数据表名'[FieldName] = 结束事件,
        '你的数据表名'[Number] = 当前挂靠编号,
        NOT(ISBLANK('你的数据表名'[FromDate]))
    )
RETURN
    IF(
        AND(NOT(ISBLANK(起始时间)), NOT(ISBLANK(结束时间))),
        DATEDIFF(起始时间, 结束时间, HOUR),
        BLANK()
    )

逻辑说明

  1. 通过起始事件和结束事件变量定义目标事件,修改这两个值即可切换计算的事件组合
  2. 当前挂靠编号获取当前筛选上下文下的港口挂靠唯一编号
  3. 起始时间/结束时间分别筛选当前挂靠下对应事件的最早有效时间(符合"首个事件"需求)
  4. 最终返回两个时间的小时差,若任一事件无有效时间则返回空值

复用示例

例如要计算"Anchor aweigh"到"First line ashore"的时间差,仅需修改事件变量:

事件时间差(小时) = 
VAR 起始事件 = "Anchor aweigh"
VAR 结束事件 = "First line ashore"
VAR 当前挂靠编号 = SELECTEDVALUE('你的数据表名'[Number])
VAR 起始时间 = 
    CALCULATE(
        MIN('你的数据表名'[FromDate]),
        '你的数据表名'[FieldName] = 起始事件,
        '你的数据表名'[Number] = 当前挂靠编号,
        NOT(ISBLANK('你的数据表名'[FromDate]))
    )
VAR 结束时间 = 
    CALCULATE(
        MIN('你的数据表名'[FromDate]),
        '你的数据表名'[FieldName] = 结束事件,
        '你的数据表名'[Number] = 当前挂靠编号,
        NOT(ISBLANK('你的数据表名'[FromDate]))
    )
RETURN
    IF(
        AND(NOT(ISBLANK(起始时间)), NOT(ISBLANK(结束时间))),
        DATEDIFF(起始时间, 结束时间, HOUR),
        BLANK()
    )

注意事项

  • 若FromDate列未识别为日期时间格式,需先在PowerBI数据转换中调整类型,否则DATEDIFF无法正常计算
  • 同一事件在同一挂靠下有多条记录时,MIN函数会自动取最早发生的时间,符合业务逻辑
  • 空的FromDate记录会被过滤,避免无效计算结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:45:30