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

Power BI中DAX编写Update Health日期计算指标代码问题求助

DAX代码错误修正说明

现有代码的错误点

  • 语法逻辑错误:你编写的[Project Modified Date]= NOW() <= (NOW()-10)属于非法条件表达式,DAX不支持连续使用=和<=两个运算符做复合判断,系统无法识别对应的判断逻辑。
  • 时间函数选择不合理:NOW()函数返回带时分秒的当前时间,如果你仅需要按自然日期判断修改时间所属区间,使用不带时间的TODAY()函数可以避免时间部分导致的日期判断偏差。
  • 判断顺序逻辑错误:现有代码优先判断「修改日期早于10天前」的条件,所有早于10天、5天、1天的记录都会先命中第一个条件,后面的区间判断永远不会生效,应该按照区间从小到大的顺序先判断时间更近的区间。
  • 条件含义混乱:要判断「修改日期距今天超过10天」,对应的表达式应为DATEDIFF([Project Modified Date], TODAY(), DAY) >=10或者[Project Modified Date] <= TODAY() -10,现有写法的逻辑完全不符合需求。

修正后代码

对齐原有嵌套IF结构的版本

Update Health = 
VAR DiffDays = DATEDIFF([Project Modified Date], TODAY(), DAY)
RETURN
IF(
    DiffDays >=10,
    'Projects'.[PWA URL] & "/_layouts/15/inc/PWA/images/cf_6p.png",
    IF(
        DiffDays >=5,
        'Projects'.[PWA URL] & "/_layouts/15/inc/PWA/images/cf_1p.png",
        IF(
            DiffDays >=1,
            'Projects'.[PWA URL] & "/_layouts/15/inc/PWA/images/cf_2p.png",
            'Projects'.[PWA URL] & "/_layouts/15/inc/PWA/images/cf_11p.png"
        )
    )
)

更易维护的SWITCH优化版本

Update Health = 
VAR DiffDays = DATEDIFF([Project Modified Date], TODAY(), DAY)
VAR BaseURL = 'Projects'.[PWA URL] & "/_layouts/15/inc/PWA/images/"
RETURN
SWITCH(
    TRUE(),
    DiffDays >=10, BaseURL & "cf_6p.png",
    DiffDays >=5, BaseURL & "cf_1p.png",
    DiffDays >=1, BaseURL & "cf_2p.png",
    BaseURL & "cf_11p.png"
)

区间对应关系

  • 距离上次修改>=10天:对应cf_6p.png
  • 距离上次修改5-9天:对应cf_1p.png
  • 距离上次修改1-4天:对应cf_2p.png
  • 距离上次修改小于1天(当天修改):对应cf_11p.png
    如果图标对应的区间和上述规则不同,直接调整判断条件的数值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:36:08