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

DAX中SWITCH TRUE与OR函数组合实现嵌套逻辑的问题求助

正确实现指定逻辑的DAX表达式

原代码存在的问题

  • 日期年份错误:写成了2023,实际需求是2024年的日期范围
  • 逻辑优先级错误:OR条件未加括号,导致State="VIC"会单独触发"A1",忽略日期限制
  • 缺少第二个分支逻辑:未实现A2的输出规则

正确DAX代码

Output = 
SWITCH(
    TRUE(),
    // 第一个条件:2024.5.1-5.15,且state为WA或VIC,输出A1
    date >= DATE(2024,5,1) && date <= DATE(2024,5,15) && OR(State = "WA", State = "VIC"), "A1",
    // 第二个条件:2024.4.15-4.30,且state为NSW或VIC,输出A2
    date >= DATE(2024,4,15) && date <= DATE(2024,4,30) && OR(State = "NSW", State = "VIC"), "A2",
    // 其余情况输出空值
    BLANK()
)

逻辑说明

  1. 第一个分支:严格判断日期在2024年5月1日至15日之间,同时state是WA或VIC时返回"A1",用OR函数包裹state条件确保和日期条件是且的关系
  2. 第二个分支:判断日期在2024年4月15日至30日之间,同时state是NSW或VIC时返回"A2"
  3. 所有不满足上述条件的情况,返回空值(用BLANK()比""更符合DAX的规范)

示例验证

结合你提供的示例表格,部分验证结果如下:

datestateOutput
15/05/2024WAA1
6/05/2024VICA1
26/04/2024VICA2
19/04/2024NSWA2
17/05/2024WA空值
25/04/2024WA空值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:02:09