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() )
逻辑说明
- 第一个分支:严格判断日期在2024年5月1日至15日之间,同时state是WA或VIC时返回"A1",用OR函数包裹state条件确保和日期条件是且的关系
- 第二个分支:判断日期在2024年4月15日至30日之间,同时state是NSW或VIC时返回"A2"
- 所有不满足上述条件的情况,返回空值(用BLANK()比""更符合DAX的规范)
示例验证
结合你提供的示例表格,部分验证结果如下:
| date | state | Output |
|---|---|---|
| 15/05/2024 | WA | A1 |
| 6/05/2024 | VIC | A1 |
| 26/04/2024 | VIC | A2 |
| 19/04/2024 | NSW | A2 |
| 17/05/2024 | WA | 空值 |
| 25/04/2024 | WA | 空值 |
内容的提问来源于stack exchange,提问作者F A
相关产品推荐
相关产品推荐

