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

如何在PowerBI中用DAX自定义列实现含NOT IN的SQL CASE WHEN逻辑

在PowerBI中用DAX重构SQL CASE WHEN逻辑

要把你提供的SQL CASE WHEN转换成PowerBI自定义列的逻辑,用DAX的SWITCH函数最清晰(比嵌套IF更易读),以下是对应实现:

最终DAX代码(自定义列)

my_custom_column = 
SWITCH(
    TRUE(),
    // 对应第一个CASE条件:Account=2且Currency属于EUR/GBP
    [Account] = 2 && [Currency] IN {"EUR", "GBP"}, "Europe",
    // 对应第二个CASE条件:Account=3且Currency不属于USD/JPY
    [Account] = 3 && NOT([Currency] IN {"USD", "JPY"}), "Emerging Market",
    // 对应第三个CASE条件:Account=4
    [Account] = 4, "Account 4",
    // 对应第四个CASE条件:code以123开头(模糊匹配前缀)
    STARTSWITH([code], "123"), 1,
    // 对应第五个CASE条件:code以222结尾(模糊匹配后缀)
    ENDSWITH([code], "222"), 2,
    // 对应ELSE分支
    [Country_Name]
)

关键逻辑对应说明

  • IN/ NOT IN判断:DAX里用IN运算符直接实现SQL的IN逻辑,否定则加NOT()包裹
  • 前缀模糊匹配:用DAX内置函数STARTSWITH()替代SQL的like '123%'
  • 后缀模糊匹配:用DAX内置函数ENDSWITH()替代SQL的like '%222'
  • 多条件AND:直接用&&连接两个条件,和SQL的AND逻辑一致

使用步骤

  1. 在PowerBI数据视图中,选中目标表
  2. 点击顶部菜单栏的「列工具」→「新建列」
  3. 粘贴上述DAX代码,按回车完成自定义列创建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:46:04