首页 > 解决方案 > SWITCH True Power BI 中的多个列和条件

问题描述

我有两个不同的列,一个是名称,另一个是 ID。Name 列包含文本和数字,并且字符的长度并不总是相同。

ID 列仅包含数字。

1.如果 ID 列包含 38 并且 Name 列包含“-”然后训练。

2.如果 ID 列包含 56,Name 列包含“-”则为 Air。

3.如果ID列包含38且名称列不包含“-”则为Road。

4.如果 ID 列包含 56 且 Name 列不包含“-”则为 Road。

在 Excel 中,我应用以下公式

=IF(A3="","",IFERROR(IF(REPLACE(A3,1,SEARCH("-",A3),)+0,IF(B3&""="38","TRAIN",IF(B3&""="56","AIR","ROAD"))),"ROAD")) 

为了得到结果。

我想要计算列。

在此处输入图像描述

标签: searchdaxpowerbi-desktop

解决方案


这可能在 DAX 中实现为使用 SWITCH 语句的计算列

SWITCH(
    TRUE(),
    T[ID] = 38
        && SEARCH( "-", T[NAME], 1, 0 ) > 0, "Train",
    T[ID] = 56
        && SEARCH( "-", T[NAME], 1, 0 ) > 0, "Air",
    T[ID]
        IN { 38, 56 }
            && SEARCH( "-", T[NAME], 1, 0 ) = 0, "Road"
)

默认(无匹配条件)是返回 BLANK()

也可以使用嵌套的 IF,这是个人喜好问题


推荐阅读