如果指定的条件的计算结果为 TRUE,则返回一个值;如果计算结果为 FALSE,则返回另一个值。 使用 IF 对值和公式执行条件测试。
语法
IF (logical_test,value_if_true,value_if_false)
Logical_test 是可以计算为 TRUE 或 FALSE 的任何值或表达式。 例如,[Quarter1]=100 是逻辑表达式;如果列 [Quarter1] 的一行中的值等于 100,则表达式的计算结果为 TRUE。 否则,表达式的计算结果为 FALSE。 此参数可以使用任何比较计算运算符。
Value_if_true 是当logical_test为 TRUE 时返回的值。 例如,如果此参数是文本字符串“预算内”,并且logical_test参数的计算结果为 TRUE,则 IF 函数将显示文本“预算内”。 如果 logical_test 为 TRUE 且 value_if_true 为空,则此参数返回 0 (零) 。 若要显示单词 TRUE,请使用此参数的逻辑值 TRUE。 Value_if_true可以是另一个公式。
Value_if_false 是当logical_test为 FALSE 时返回的值。 例如,如果此参数是文本字符串“超过预算”,而logical_test参数的计算结果为 FALSE,则 IF 函数将显示文本“超过预算”。 如果logical_test为 FALSE 且省略value_if_false, (即value_if_true之后没有逗号) ,则返回逻辑值 FALSE。 如果logical_test为 FALSE 且value_if_false为空 (即value_if_true之后,有一个逗号后跟右括号) ,则返回值 0 (零) 。 Value_if_false可以是另一个公式。
备注
- 最多可以嵌套 7 个 IF 函数作为value_if_true和value_if_false参数来构造更详细的测试。 请参阅以下示例中的最后一个。
- 计算value_if_true和value_if_false参数时,IF 返回这些语句返回的值。
- 如果 IF 的任何参数是数组,则执行 IF 语句时将计算数组的每个元素。
示例集 1
| C ol1 | Col2 | Col3 | 费用 | 公式 | 描述(结果) |
|---|---|---|---|---|---|
| 50 | =IF ([Expense]<=100,“在预算内”,“超过预算”) | 如果数字小于或等于 100,则公式将显示“预算内”。 否则,函数将显示“超出预算”。 (预算) | |||
| 23 | 45 | 89 | 50 | =IF ([Expense]=100,SUM ([Col1],[Col2],[Col3]) ,“”) | 如果数字为 100,则添加三个值。 否则,返回空文本 ("")。 () |
示例集 2
| ActualExpenses | PredictedExpenses | 公式 | 描述(结果) |
|---|---|---|---|
| 1500 | 900 | =IF ([ActualExpenses]>[PredictedExpenses],“Over Budget”,“OK”) | 检查第一行是否超出预算 (超出预算) |
| 500 | 900 | =IF ([ActualExpenses]>[PredictedExpenses],“Over Budget”,“OK”) | 检查第二行是否超出预算 (正常) |
示例集 3
| 分数 | 公式 | 描述(结果) |
|---|---|---|
| 45 | =IF ([Score]>89,“A”,IF ([Score]>79,“B”, IF ([Score]>69,“C”,IF ([Score]>59,“D”,“F”) ) ) ) | 将字母等级分配给第一个分数 (F) |
| 90 | =IF ([Score]>89,“A”,IF ([Score]>79,“B”, IF ([Score]>69,“C”,IF ([Score]>59,“D”,“F”) ) ) ) | 将字母等级分配给第二个分数 (A) |
| 78 | =IF ([Score]>89,“A”,IF ([Score]>79,“B”, IF ([Score]>69,“C”,IF ([Score]>59,“D”,“F”) ) ) ) | 将字母等级分配给 C) (第三个分数 |
在前面的示例中,第二个 IF 语句也是第一个 IF 语句的value_if_false参数。 同样,第三个 IF 语句是第二个 IF 语句的 value_if_false 参数。 例如,如果第一个logical_test ([Score]>89) 为 TRUE,则返回“A”。 如果第一个logical_test为 FALSE,则计算第二个 IF 语句,依此计算。
字母等级使用以下键分配给数字, (假设仅使用整数) 。
| 如果分数为 | 然后返回 |
|---|---|
| 大于 89 | A |
| 从 80 到 89 | B |
| 从 70 到 79 | C |
| 从 60 到 69 | D |
| 小于 60 | 五 |