IF

适用于:计算列计算表Measure视觉计算

检查条件,and 在 TRUE时返回一个 value,否则返回 secondvalue。

语法

IF(<logical_test>, <value_if_true>[, <value_if_false>])

参数

术语 定义
logical_test 可计算为 TRUEorFALSE的任何 valueor 表达式。
value_if_true 逻辑测试 if 返回的 valueTRUE
value_if_false (可选)逻辑测试 if 返回的 valueFALSE。 If 省略,将返回 BLANK。

返回 value

value_if_truevalue_if_false、orBLANK

言论

  • IF 函数可以返回变体数据类型 ifvalue_if_trueandvalue_if_false 是不同的数据类型,但该函数尝试返回单个数据类型,if 两个 value_if_trueandvalue_if_false 都是数值数据类型。 在后一种情况下,IF 函数将隐式 convert 数据类型以适应这两种 values。

    例如,公式 IF(<condition>, TRUE(), 0) 返回 TRUEor 0,但公式 IF(<condition>, 1.0, 0) 仅返回十进制 valueseven,尽管 value_if_false 是整数数据类型。 若要详细了解隐式数据类型转换,请参阅 数据类型

  • 若要执行分支表达式而不考虑条件表达式,请改用 IF.EAGER

例子

以下 Product 表计算列定义使用不同的 IF 函数根据其列表 price对每个 product 进行分类。

first 示例测试 列表 Price 列 value 是否小于 500。 当此条件 时,将返回低 。 由于没有 value_if_falsevalue,因此返回 BLANK。

本文中的示例可用于 sample Adventure Works DW 2020 Power BI Desktop 模型。 若要获取模型,请参阅 DAXsample 模型

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low"
)

second 示例使用相同的测试,但此 time 包括 value_if_falsevalue。 因此,公式将每个 product 分类为 LoworHigh

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    "High"
)

第三个示例使用相同的测试,但这 time 嵌套 IF 函数来执行其他测试。 因此,公式将每个 product 分类为 LowMedium、orHigh

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    IF(
        'Product'[List Price] < 1500,
        "Medium",
        "High"
    )
)

提示

如果需要嵌套多个 IF 函数,SWITCH 函数可能是更好的选择。 此函数提供了一种更优雅的方法来编写返回两个以上可能的表达式 values。

IF.EAGER 函数
SWITCH 函数(DAX)
逻辑函数