IF 函数
检查是否满足作为第一个参数提供的条件。 如果该条件为 TRUE,则返回一个值;如果该条件为 FALSE,则返回另一个值。
语法
IF(logical_test>,<value_if_true>, value_if_false)
参数
术语 |
定义 |
---|---|
logical_test |
计算结果可以为 TRUE 或 FALSE 的任何值或表达式。 |
value_if_true |
在逻辑测试为 TRUE 时返回的值。 如果省略,则返回 TRUE。 |
value_if_false |
在逻辑测试为 FALSE 时返回的值。 如果省略,则返回 FALSE。 |
返回值
可由表达式返回的任何类型的值。
注释
如果省略了 value_if_true 或 value_if_false 的值,则 IF 将其视为空字符串值 ("")。
如果在表达式中引用的值是某一列,则 IF 将返回与当前行相对应的值。
IF 函数尝试返回列中的单个数据类型。 因此,如果 value_if_true 和 value_if_false 返回的值属于不同的数据类型,则 IF 函数会隐式转换数据类型以便适合列中的这两种值。 例如,公式 IF(<condition>,TRUE(),0) 返回由 1 和 0 组成的列,并且可以对结果求和,但公式 IF(<condition>,TRUE(),FALSE()) 只返回逻辑值。 有关隐式数据类型转换的详细信息,请参阅 PowerPivot 工作簿中支持的数据类型。
示例
下面的示例使用嵌套 IF 函数,这些函数对 Adventure Works DW Multidimensional 2012 中表 FactCallCenter 的 Calls 列中的数字进行计算。 该函数按如下所示分配标签:如果电话的数目少于 200,则为 low;如果电话的数目少于 300 但多于 200,则为 medium;对于其他所有值,则为 high。
=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))
下面的示例通过使用来自 Adventure Works DW Multidimensional 2012 的表 ProspectiveBuyer 中的列,获取包含 California 地区的潜在客户的城市的列表。 因为该列表旨在计划一个面向已婚人士或者有小孩人士的市场活动,所以,IF 函数中的条件将检查 [MaritalStatus] 和 [NumberChildrenAtHome] 列的值,并且在满足任何一个条件且该客户位于 California 时输出城市。否则,它将输出空字符串。
=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])
请注意,括号用于控制 AND (&&) 和 OR (||) 运算符的使用顺序。 还要注意,没有为 value_if_false 指定任何值。 因此,该函数返回默认值,即空字符串。