DAX 中的多个 IF 语句

Posted

技术标签:

【中文标题】DAX 中的多个 IF 语句【英文标题】:Multiple IF Statements in DAX 【发布时间】:2017-03-08 08:45:56 【问题描述】:

我目前在 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())

输出:

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())

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

【问题讨论】:

我想让公式在合并输出公式的一列中显示数据(如上所示),以便我在一列中看到结果。 【参考方案1】:

您可以像这样使用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()
)

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

【讨论】:

【参考方案2】:
if you want to categorize the column value in the numerical range you can use below dax query.

bubble = IF(AND([no_of_days_pending]>=100, [no_of_days_pending]<200),150,
 IF(AND([no_of_days_pending]>=200, [no_of_days_pending]<300),250,
  IF(AND([no_of_days_pending]>=300, [no_of_days_pending]<400),350,
   IF(AND([no_of_days_pending]>=400, [no_of_days_pending]<500),450,
    IF([no_of_days_pending]>=500,600, BLANK())
))))

【讨论】:

【参考方案3】:

只需嵌套你的 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())
))))

【讨论】:

谢谢@user5226582

以上是关于DAX 中的多个 IF 语句的主要内容,如果未能解决你的问题,请参考以下文章

基于Python中的多个条件进行过滤

内联中的多个语句 if

如何计算 DAX 中的累计总计和百分比?

if 语句中的多个赋值

从 SQL 表获取的数组中的单个 IF 语句与多个 IF 语句 [关闭]

IF 语句中的多个命令