如果指定条件的计算结果为 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可以是另一个公式。
备注
- 最多可将七个 IF 函数嵌套为value_if_true和value_if_false参数,以构建更复杂的测试。 请参阅以下最后一个示例。
- 计算 value_if_true 和 value_if_false 参数时,IF 返回这些语句返回的值。
- 如果 IF 的任何参数是数组,则执行 IF 语句时将计算数组的每个元素。
示例集 1
| C ol1 | col2 | col3 | 费用 | 公式 | 描述(结果) |
|---|---|---|---|---|---|
| 50 | =IF ([费用]<=100,“在预算范围内”,“超出预算”) | 如果数字小于或等于 100,则公式显示“在预算范围内”。 否则,该函数将显示“超出预算”。 (在预算) 范围内 | |||
| 23 | 45 | 89 | 50 | =IF ([费用]=100,SUM ([Col1],[Col2],[Col3]) ,“”) | 如果数字为 100,则三个值相加。 否则,返回空文本 ("")。 () |
示例集 2
| ActualExpenses | PredictedExpenses | 公式 | 描述(结果) |
|---|---|---|---|
| 1500 | 900 | =IF ([ActualExpenses]>[PredictedExpenses],“超出预算”,“OK”) | 检查第一行是否超出预算 (超出预算) |
| 500 | 900 | =IF ([ActualExpenses]>[PredictedExpenses],“超出预算”,“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 | 五 |