如何使用 Power BI DAX 逻辑函数并附带示例?Microsoft Power BI DAX 提供了各种逻辑函数,例如 IF 语句、AND、OR、NOT、IN、TRUE、FALSE、IFERROR、SWITCH 等。
为了演示这些 Power BI DAX 逻辑函数,我们使用了下面显示的数据。正如您所见,此表中共有 15 条记录。

Power BI DAX 逻辑函数
以下一系列示例展示了 DAX 逻辑函数列表。
DAX IF 逻辑函数
Power BI DAX IF 函数检查给定表达式是 True 还是 False。DAX IF 函数的语法是
IF(Expression, True_Info, False_Info)
从上面的语法可以看出,此 Power BI DAX IF 函数接受三个参数:第一个参数是布尔表达式(返回 true 或 false)。如果表达式结果为 TRUE,则返回第二个参数;否则,返回第三个参数。
为了在 Power BI 中演示这些 DAX 逻辑 IF 函数,我们必须使用“计算”。要 创建列,请单击“主页”选项卡或“建模”选项卡下的“新建列”选项。

我们将默认列名重命名为 IfExample。正如您从下面的屏幕截图中所见,在我键入时,IntelliSense 正在显示建议。
出于此 DAX 逻辑函数演示目的,我们使用 Sales 列。

通过按 Enter 键或任意键,将创建一个新列。最终的代码是
IfExample = IF(EmployeeSales[Sales] > 3000, "Good", "Bad")
上面的 DAX IF 函数检查每列的 Sales 金额是否大于 3000。如果为 True,则该列返回 Good;否则,返回 Bad。

我将此列添加到我们之前创建的表中。请参阅 创建表报表 文章以了解创建表涉及的步骤。

DAX 嵌套 IF 函数
在 Power BI 中,您可以使用 DAX 嵌套 IF 概念。我的意思是,一个 IF 语句嵌套在另一个 IF 语句中。下面的 DAX 嵌套 IF 函数检查每列的 Sales 金额是否小于 1000。如果为 True,则该列返回 Very Bad;否则,它进入嵌套 IF。
NestedIfEx = IF(EmployeeSales[Sales] < 1000, "Very Bad",
IF(EmployeeSales[Sales] > 3000, "Good", "Average" ))

我将此嵌套列添加到此表中。

DAX 逻辑 AND 函数
Power BI DAX 逻辑 AND 函数检查多个表达式。DAX AND 函数的语法是
AND(Condition 1, Condition 2)
从上面的语法可以看出,DAX AND 函数接受两个参数:如果两个条件都为 True,则返回 True。否则,返回 False。
我将创建一个列来检查每列的 Sales 是否大于平均值,以及年度收入是否大于 70000。如果这两个条件都为 True,则该列返回 Good Job。否则,在列中返回 Bad Job。
AndSales = IF(AND(EmployeeSales[Sales] > AVERAGE(EmployeeSales[Sales]),
EmployeeSales[YearlyIncome] >= 70000), "Good Job", "Bad Job")

DAX OR 函数
Power BI DAX OR 函数就像英语中的“或”语句,用于检查多个表达式。DAX OR 函数语法如下:
OR(Condition 1, Condition 2)
从上面的 DAX OR 函数语法可以看出:如果两个条件都为 False,则返回 False;否则,返回 True。
我将创建一个列来检查 Sales 是否小于平均值,或者年度收入是否大于等于 90000。如果这两个条件都为 False,则该函数返回 Doing Good;否则,在列中返回 Watchlist。
OrSales = IF(OR(EmployeeSales[Sales] < AVERAGE(EmployeeSales[Sales]),
EmployeeSales[YearlyIncome] >= 90000), "Watchlist", "Doing Good")

我将 AND 函数和 OR 函数这两个 Power BI 列添加到下面显示的表中。

DAX NOT 函数
Power BI DAX NOT 函数将 True 转换为 False,将 False 转换为 True。我的意思是,它返回相反的结果。DAX NOT 函数的语法是
NOT(Condition)
如果 Sales 大于 2000,下面的语句返回 False;否则,返回 True。
NotSale = NOT(IF(EmployeeSales[Sales] > 2000, "TRUE", "FALSE")

我将此 Not Function 列添加到此表中。

DAX IN 函数
Power BI DAX IN 函数将计算限制在指定的列。例如,您可以计算临时员工的销售额总和。DAX IN 函数的语法如下所示
Column IN {field1, field2,...,fieldN}
以下语句计算教育程度为 Education、Bachelors 或 Masters Degree 的员工的销售额总和。请记住,这是一个 Measure。
SalesIN = CALCULATE(SUM(EmployeeSales[YearlyIncome]) ,
'EmployeeSales'[Education] IN {"Education", "Bachelors", "Masters Degree"})

我将使用此 Measure 创建一个卡片。请参阅 创建卡片 和 格式化卡片 文章以了解创建和格式化卡片涉及的步骤。

DAX TRUE 函数
Power BI DAX 逻辑 TRUE 函数返回逻辑 true。如果 Sales 大于平均销售额,下面的语句返回 True;否则,返回 False。
TRUESale = IF(EmployeeSales[Sales] > AVERAGE(EmployeeSales[Sales]), TRUE(), FALSE() )

Power BI DAX 逻辑 FALSE 函数
DAX FALSE 函数返回逻辑 false。如果 Sales 小于 2500,下面的代码返回 False。否则,返回 True。
FalseSale = IF(EmployeeSales[Sales] < 2500, FALSE(), TRUE() )

我将 True Function 和 False Function 的结果添加到表报表中。

DAX IFERROR 函数
Power BI DAX IFERROR 函数非常有用,可以处理算术溢出或任何其他错误。它只需执行计算并返回结果;如果出现错误,则返回第二个参数中的值。
DAX IFERROR 函数的语法是
IFERROR(Calculation, Value_If_Error_Occurs)
如果发生错误,下面的语句返回 100。实际上,所有记录都会引发错误,因为我们正在除以 0。
ErrorSale = IFERROR(EmployeeSales[Sales]/0, 100)

我将 Iferror 列的结果添加到表报表中。

DAX SWITCH 函数
Power BI DAX SWITCH 函数可帮助您返回多个选项。例如,DAX IF 函数返回 True 或 False。但是,您可以使用此 switch case 进行多个结果。
DAX Switch 函数的语法如下所示
SWITCH(Expression, Option 1, Result 1, Option 2, Result 2, ....., ElseResult)
如果入职日期的月份是 1,则下面的语句返回 January;2 表示 February;3 表示 March;4 表示 April;5 表示 May;12 表示 December;否则返回 Unknown。
SwitchMonth = SWITCH(MONTH(EmployeeSales[HireDate]), 1, "January", 2, "February", 3, "March", 4, "April", 5, "May",
12, "December", "Unknown")

我将此 Power BI DAX Switch 函数结果列添加到此表报表中。

评论已关闭。