DAX中基于当前日期的多IF语句语法求助
DAX 多条件判断度量值实现方案
以下是满足你需求的DAX度量值代码,直接复制到Power BI的度量值编辑器中即可使用:
Comp Status = VAR CurrentDate = TODAY() VAR ValidUntil = MAX('All Occupational Competences (2) Sig Removed'[Emp Comp Valid Until]) RETURN IF(ValidUntil < CurrentDate, "Expired", IF(ValidUntil >= CurrentDate && ValidUntil < CurrentDate + 28, "1 Pd", IF(ValidUntil >= CurrentDate + 28 && ValidUntil < CurrentDate + 56, "2 Pds", IF(ValidUntil >= CurrentDate + 56 && ValidUntil < CurrentDate + 84, "3 Pds", BLANK() // 超出84天范围的情况返回空,可根据需求修改 ) ) ) )
代码说明:
- 变量定义:
CurrentDate:用TODAY()获取当前系统日期,避免重复计算。ValidUntil:用MAX()函数获取当前上下文下的有效期日期(表格视觉对象中会自动匹配每行数据;若需严格单值获取,可替换为SELECTEDVALUE())。
- 条件判断逻辑:
- 按从严格到宽松的顺序判断条件,确保每个场景互斥且覆盖需求。
- 末尾的
BLANK()对应超出84天的情况,可根据实际需求修改为其他文本(比如"Current")。
注意事项:
- 确保表名、列名与你的数据模型完全一致,含特殊字符(空格、括号)的名称必须用单引号包裹。
- 若数据存在空值,
MAX()会自动忽略,如需处理空值场景,可在最外层添加额外IF判断。
内容的提问来源于stack exchange,提问作者Val VonDanikan
相关产品推荐
相关产品推荐

