DAX 中的多个 IF 语句

Rus*_*ush 5 if-statement dax powerbi

我目前在 Power BI 中制定了以下列数据,我需要将其显示在一列中,但将“1”替换为文本值:

原始列公式:

Age (18-27) = IF(AND([Age]>17, [Age]<28),"1",BLANK())
Age (28-35) = IF(AND([Age]>27, [Age]<36),"1",BLANK())
Age (36-43) = IF(AND([Age]>35, [Age]<44),"1",BLANK())
Age (44-50) = IF(AND([Age]>43, [Age]<51),"1",BLANK())
Age (50+) = IF([Age]>50,"1 ", BLANK())
Run Code Online (Sandbox Code Playgroud)

输出:

Age (18-27) = IF(AND([Age]>17, [Age]<28),"Age (18-27)",BLANK())
Age (28-35) = IF(AND([Age]>27, [Age]<36),"Age (28-35)",BLANK())
Age (36-43) = IF(AND([Age]>35, [Age]<44),"Age (36-43)",BLANK())
Age (44-50) = IF(AND([Age]>43, [Age]<51),"Age (44-50)",BLANK())
Age (50+) = IF([Age]>50,"Age (50+) ", BLANK())
Run Code Online (Sandbox Code Playgroud)

我想让公式将数据显示在一列中,它正在合并输出公式(如上所示),因此我可以在一列中看到结果。

use*_*582 6

只需嵌套您的 IF:

Age Group = IF(AND([Age]>17, [Age]<28),"18-27",
 IF(AND([Age]>27, [Age]<36),"28-35",
  IF(AND([Age]>35, [Age]<44),"36-43",
   IF(AND([Age]>43, [Age]<51),"44-50",
    IF([Age]>50,"50+", BLANK())
))))
Run Code Online (Sandbox Code Playgroud)


use*_*130 5

您可以SWITCH()像这样使用,这比嵌套 IF 更简洁:

Age Group = SWITCH(TRUE(),
    AND([Age]>17, [Age]<28), "18-27",
    AND([Age]>27, [Age]<36), "28-35",
    AND([Age]>35, [Age]<44), "36-43",
    AND([Age]>43, [Age]<51), "44-50",
    [Age]>50, "50+", BLANK()
)
Run Code Online (Sandbox Code Playgroud)

来源:https : //community.powerbi.com/t5/Desktop/IF-or-SWITCH/mp/167098#M72970