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

如何在DAX中正确计算日期差?解决非空日期计算错误问题

问题分析

你当前的DAX度量值使用MIN函数,会返回整个表中最早的非空日期(也就是你提到的2022年的那条记录),这和你需要计算今日与较近期非空日期间隔的需求不符,导致结果错误。

根据你给出的示例期望结果(5/25/2025 - 5/22/2025 = 3天),推测你的需求是获取第二新的非空日期(示例中最新非空日期是5/24/2025,第二新是5/22/2025)。

解决方案

1. 若需求是获取最新的非空日期(与今日间隔1天)

将MIN替换为MAX,MAX会返回表中最新的非空日期:

Measure = TODAY() - CALCULATE( MAX('table'[DateColumn]), NOT ISBLANK('table'[DateColumn]) )

2. 若需求是获取第二新的非空日期(与今日间隔3天,匹配你的期望结果)

先排除最新的非空日期,再取剩余日期中的最大值:

Measure = 
VAR LatestDate = CALCULATE( MAX('table'[DateColumn]), NOT ISBLANK('table'[DateColumn]) )
RETURN TODAY() - CALCULATE( MAX('table'[DateColumn]), NOT ISBLANK('table'[DateColumn]), 'table'[DateColumn] < LatestDate )

3. 若需求是获取最近N天内的最早非空日期(比如最近7天)

如果需要限定日期范围(避免取到2022年的早期数据),可以添加日期筛选条件:

Measure = 
VAR SevenDaysAgo = TODAY() - 7
RETURN TODAY() - CALCULATE( MIN('table'[DateColumn]), NOT ISBLANK('table'[DateColumn]), 'table'[DateColumn] >= SevenDaysAgo )
示例验证

以你提供的示例数据(DateColumn包含5/24/2025、null、5/22/2025):

  • 方案1返回5/25/2025 - 5/24/2025 = 1天
  • 方案2返回5/25/2025 - 5/22/2025 = 3天,与你的期望结果一致
  • 方案3(最近7天)返回5/25/2025 - 5/22/2025 = 3天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:43:10