如何使用Power BI Desktop在DAX中编写多个IF语句?

时间:2018-08-26 16:14:48

标签: powerbi dax powerbi-desktop

在Power BI Desktop上,我正在使用多个条件IF语句。我有一个带有用户ID和SecondsToOrder的原始表,如下所示。

UserID      SecondsToOrder
00001       2320
00002       13
00003       389
00004       95
...         ...

我创建了一个新的计算列MinutesRounded,将秒数舍入为分钟,现在我的表看起来像这样。

UserID      SecondsToOrder   MinutesRounded
00001       2320             38
00002       13               0
00003       389              12
00004       95               1
...         ...              ...

现在,我想基于计算所得的列MinutesRounded创建另一列,在该列中,我根据数字将每个用户分配给以下组之一:'<1分钟''<15分钟'和'> 15分钟'。最终结果应如下所示。

UserID      SecondsToOrder   MinutesRounded    Lenght
00001       2320             38               > 15 minutes
00002       13               0                < 1 minute 
00003       389              12               < 15 minutes 
00004       95               1                < 1 minute 
...         ...              ...              ... 

我正在通过此声明使用DAX进行操作。

Lenght = IF([MinutesRounded]<1,"< 1 minute",IF([MinutesRounded]<15,"<15 minutes", "> 15 minutes"))

并出现语法错误。严重不明白这里出了什么问题。能否请你帮忙。我收到的错误如下:

The syntax for '"< 1 minute"' is incorrect. (DAX(IF([MinutesRounded]<1."< 1 minute",IF([MinutesRounded]<15."<15 minutes", "> 15 minutes")))).

由于某种原因,我看到点和括号出现在我没有键入的错误中。我该如何解决?

更新:发现原因是POWER BI中的某些区域/键盘设置,这就是为什么我不得不使用分号而不是逗号的原因。代码本身是正确的。

1 个答案:

答案 0 :(得分:2)

我完全按照原样使用您的DAX没错:

= IF([MinutesRounded]<1,"< 1 minute",IF([MinutesRounded]<15,"<15 minutes", "> 15 minutes"))

您还可以使用SWITCH:

=
SWITCH (
    TRUE (),
    [MinutesRounded] < 1, "< 1 minute",
    [MinutesRounded] < 15, "<15 minutes",
    "> 15 minutes"
)

谢谢