IF

适用于:计算列计算表度量值视觉计算

检查条件,并在 TRUE时返回一个值,否则返回第二个值。

语法

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

参数

术语 定义
logical_test 可计算为 TRUEFALSE的任何值或表达式。
value_if_true 如果逻辑测试 TRUE,则返回的值。
value_if_false (可选)如果逻辑测试 FALSE,则返回的值。 如果省略,则返回 BLANK。

返回值

value_if_truevalue_if_falseBLANK

言论

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

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

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

例子

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

第一个示例测试 标价 列值是否小于 500。 如果此条件为 true,则返回 的值。 由于没有 value_if_false 值,因此返回 BLANK。

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

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

第二个示例使用相同的测试,但这次包含 value_if_false 值。 因此,公式将每个产品分类为 LowHigh

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

第三个示例使用相同的测试,但这次嵌套 IF 函数来执行其他测试。 因此,公式将每个产品分类为 LowMediumHigh

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

提示

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

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