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

Power BI DAX度量需求:计算特定工作流状态下的日期差

Power BI DAX 度量解决方案:计算到达“Received pricing”状态的时长

基础度量(单记录/聚合场景)

直接筛选目标状态,计算两个日期的天数差:

到达Received Pricing时长 = 
CALCULATE(
    DATEDIFF(
        MAX('你的表名'[Created On Date]),
        MAX('你的表名'[Physical Date]),
        DAY
    ),
    '你的表名'[工作流状态] = "Received pricing"
)
  • 替换你的表名为实际数据表名称
  • 使用MAX是为了确保在聚合或单记录场景下都能正确取到对应日期;如果每条记录唯一对应“Received pricing”状态,也可以用SELECTEDVALUE替代MAX

含空值处理的健壮度量

避免因日期为空导致的计算错误:

到达Received Pricing时长(含空值处理) = 
VAR FilteredData = FILTER('你的表名', '你的表名'[工作流状态] = "Received pricing")
VAR StartDate = MAXX(FilteredData, '你的表名'[Created On Date])
VAR EndDate = MAXX(FilteredData, '你的表名'[Physical Date])
RETURN
IF(
    NOT(ISBLANK(StartDate)) && NOT(ISBLANK(EndDate)),
    DATEDIFF(StartDate, EndDate, DAY),
    BLANK()
)

按工单分组计算(多记录场景)

如果同一工单有多条状态记录,需要按工单单独计算时长:

按工单计算到达时长 = 
SUMX(
    VALUES('你的表名'[工单ID]),
    VAR TargetRecord = FILTER(
        '你的表名',
        '你的表名'[工作流状态] = "Received pricing" && 
        '你的表名'[工单ID] = EARLIER('你的表名'[工单ID])
    )
    VAR StartDate = MAXX(TargetRecord, '你的表名'[Created On Date])
    VAR EndDate = MAXX(TargetRecord, '你的表名'[Physical Date])
    RETURN
    IF(
        NOT(ISBLANK(StartDate)) && NOT(ISBLANK(EndDate)),
        DATEDIFF(StartDate, EndDate, DAY),
        BLANK()
    )
)
  • 替换工单ID为实际的分组字段(如订单号、任务ID等)

常见问题排查

  • 确认列名、表名完全匹配,注意大小写和空格
  • 检查Created On Date和Physical Date的数据类型是否为日期/时间,若为文本类型,需先用DATEVALUE转换(例如DATEVALUE('你的表名'[Created On Date]))
  • 如果可视化中无数据,检查筛选上下文是否冲突(比如页面级筛选器排除了目标状态记录)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:08:24