DAX创建计算列支持多参数吗?PowerBI多条件计算列实现求助
DAX多条件计算列的实现方案
你写的SWITCH语法存在错误,并非SWITCH只支持两个参数,问题出在这些细节上:
- 单个条件无需用
AND()包裹,比如AND(Table1[Product] = "Appliances")可直接写为Table1[Product] = "Appliances" - 存在笔误:
Table1[Table1] = "Utensils"应为Table1[Product] = "Utensils";Table 1[ProductType]里的空格要去掉,改为Table1[ProductType] - 最后默认值
"null"在DAX里建议用BLANK()表示空值,"null"会被识别为字符串
修正后的SWITCH写法
SWITCH(TRUE(), ...)本身就支持多条件分支,修正后的代码如下:
Group = SWITCH( TRUE(), Table1[Product] = "Appliances", "Home", Table1[Product] = "Utensils", "Home", Table1[Product] = "Crane", "Building", Table1[Product] = "Agriculture" && Table1[ProductType] = "Tractor", "Agricultural Products", Table1[Product] = "Car" && Table1[ProductType] <> "Bicycle", "Large Transportation", BLANK() )
改用IF ELSE嵌套的写法
如果想用IF嵌套实现,代码如下:
Group = IF( Table1[Product] = "Appliances" || Table1[Product] = "Utensils", "Home", IF( Table1[Product] = "Crane", "Building", IF( Table1[Product] = "Agriculture" && Table1[ProductType] = "Tractor", "Agricultural Products", IF( Table1[Product] = "Car" && Table1[ProductType] <> "Bicycle", "Large Transportation", BLANK() ) ) ) )
补充说明
- DAX中逻辑与用
&&、逻辑或用||,比AND()/OR()更简洁 - 若需要返回字符串形式的"null",可将
BLANK()替换为"null"
内容的提问来源于stack exchange,提问作者HaiY
相关产品推荐
相关产品推荐

