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

如何使用DAX公式计算两个筛选操作的日期天数差?

问题背景

我不确定这个问题是否已经在论坛上被提出,但我还没找到答案。我有如下数据表格:

TransactionOperation numberOpération number_2Date opération
122308008011/02/2023
122301001007/04/2022
122302002020/04/2022
12230150015012/08/2023

需求是:用户通过两个筛选器(分别对应Operation number和Opération number_2)选择不同操作,计算所选两个操作的日期天数差。例如,当筛选Operation number=080、Opération number_2=010时,需要计算11/02/2023 - 07/04/2022的天数差。需要用DAX公式实现这个计算。


DAX实现方案

通过定义度量值即可实现该需求,核心逻辑是提取两个筛选器选中操作对应的日期,再计算天数差:

度量值公式

Date Difference = 
VAR SelectedOp1 = SELECTEDVALUE('你的表名'[Operation number])
VAR SelectedOp2 = SELECTEDVALUE('你的表名'[Opération number_2])
VAR DateOp1 = CALCULATE(MAX('你的表名'[Date opération]), '你的表名'[Operation number] = SelectedOp1)
VAR DateOp2 = CALCULATE(MAX('你的表名'[Date opération]), '你的表名'[Opération number_2] = SelectedOp2)
RETURN
IF(NOT(ISBLANK(DateOp1)) && NOT(ISBLANK(DateOp2)),
    DATEDIFF(DateOp2, DateOp1, DAY),
    BLANK()
)

公式说明

  1. 变量定义:
    • SelectedOp1/SelectedOp2:分别获取两个筛选器选中的操作编号
    • DateOp1/DateOp2:根据选中的操作编号,提取对应的唯一日期(用MAX是因为同一操作编号对应唯一日期,MIN/VALUES也可替代)
  2. 差值计算:
    • 用DATEDIFF计算天数差,参数顺序为(开始日期, 结束日期, DAY),匹配示例中“Op1日期减Op2日期”的逻辑
    • 用IF判断两个日期均不为空时才返回结果,避免无筛选或筛选无效时出现错误

使用注意事项

  • 替换公式中的你的表名为实际数据表名称
  • 确保Date opération列的数据类型为日期/时间,否则DATEDIFF无法正常运行
  • 两个筛选器需分别绑定到Operation number和Opération number_2列,且每次各选中一个操作值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:33:26