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

PowerBI中使用DAX计算项目不同里程碑间的时长

解决方案:PowerBI DAX计算指定里程碑间时长

DAX代码(用于在table_1中新增计算列)

Milestone1到Milestone2时长 = 
VAR Milestone1_Latest = 
    CALCULATE(
        MAX(table_2[达成日期]),
        FILTER(table_2, table_2[ProjectID] = table_1[ProjectID] && table_2[里程碑名称] = "Milestone1")
    )
VAR Milestone2_Latest = 
    CALCULATE(
        MAX(table_2[达成日期]),
        FILTER(table_2, table_2[ProjectID] = table_1[ProjectID] && table_2[里程碑名称] = "Milestone2")
    )
RETURN
    IF(
        NOT(ISBLANK(Milestone1_Latest)) && NOT(ISBLANK(Milestone2_Latest)),
        DATEDIFF(Milestone1_Latest, Milestone2_Latest, DAY),
        BLANK()
    )

代码说明

  • 变量定义:通过两个VAR分别提取当前项目的Milestone1和Milestone2最新达成日期,MAX()函数自动筛选同一项目同一里程碑的最大(最新)日期;FILTER()限定只匹配当前行的ProjectID和目标里程碑名称。
  • 逻辑判断:用IF()检查两个里程碑的最新日期是否都存在,若都存在则用DATEDIFF()计算天数差(第三个参数DAY指定按天计算,可按需改为MONTH或YEAR);若任意一个里程碑未达成(日期为空),则返回BLANK()留空。

注意事项

  • 确保table_1与table_2已基于ProjectID建立关系(无关系时代码仍可运行,但有关系能提升计算效率)。
  • 替换代码中的"Milestone1"和"Milestone2"为实际业务中的里程碑名称。
  • 如需计算其他里程碑组合,只需修改VAR中的里程碑名称即可复用逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:48:16