IF
IF 函数返回 TRUE 或 FALSE,具体取决于指定的表达式求得的值是布尔值 TRUE 还是 FALSE。
IF(条件表达式, 如果为 TRUE, 如果为 FALSE)
条件表达式: 逻辑表达式。 条件表达式可含有任何值,只要表达式可作为布尔值求值。如果表达式求得的值为数字,则 0 被视为 FALSE,任何其他数字则被视为 TRUE。
如果为 TRUE: 条件表达式为 TRUE 时返回的值。 如果为 TRUE 可以包含任何值。如果省略如果为 TRUE(有逗号,但无值)且条件表达式的计算结果为 TRUE,IF 返回 0。
如果为 FALSE: 可选参数,指定条件表达式为 FALSE 时返回的值。 如果为 FALSE 可以包含任何值。如果省略如果为 FALSE(有逗号,但无值)且条件表达式的计算结果为 FALSE,IF 返回 0。如果完全省略如果为 FALSE(如果为 TRUE 后面无逗号)且条件表达式的计算结果为 FALSE,IF 返回 FALSE。
注释
如果为 TRUE 和如果为 FALSE 中的任意一个或两者都可以含有附加的 IF 函数(通常称为嵌套的 IF 函数)。
使用 IF 执行简单比较 |
---|
下表展示了跟踪学生成绩的一种简单方法。 |
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | 学生 | 测验分数 1 | 测验分数 2 | 最终分数 | 字母成绩 | 最终结果 |
2 | 1 | 56 | 59 | 59 | F | 不合格 |
3 | 2 | 75 | 84 | 84 | B | 合格 |
4 | 3 | 100 | 93 | 100 | A | 合格 |
你可以使用此数据执行简单的 IF 比较。以下是使用 IF 函数的一些方式: |
基于条件返回文本值: 此公式中使用了以下参数:
如果学生 1 的测验分数大于或等于 60,公式会分配“合格”结果;否则将返回“不合格”。 |
基于条件返回数字值: 此公式中使用了以下参数:
此公式以两次测验分数中的更高分数算作最终分数,你可以通过更改单元格引用来轻松修改,以匹配表格中其他任何学生的对应分数。 |
使用嵌套的 IF 函数执行条件更多的测试: 如果有至少一名学生的测验分数大于或等于 60,上述公式会分配“合格”结果。 上述公式基于学生的最终分数来分配字母成绩。 【注】使用嵌套的 IF 函数时,比较的顺序十分重要,因为公式会在第一个结果为真的语句之后停止计算。例如,如果要在字母成绩公式中添加新条件以针对 0 分的学生返回“缺考”,你需要将其添加为第一个条件。将条件添加到末尾会导致分数即使为 0 也会返回“F”,因为该分数已算作小于 60。这也是字母成绩“A”不需要单独条件表达式的原因,如果学生分数不是“B”,也不是其他任何字母成绩,那么一定是“A”。 |
试试看 |
---|
若要查看在 Numbers 电子表格中使用 IF 函数,请使用“成绩簿”模板创建新的电子表格。在“班级概览”表格中移除一个名字,并观察“最终成绩”列中的值会如何变化。探索“最终成绩”列中所使用的函数。 |
配合其他函数使用 IF |
---|
以下公式可与 ISBLANK 配合使用来确定单元格是否为空。 此公式中使用了以下参数:
|
进一步与 IFS 配合使用 |
---|
IFS 可用于计算一系列表达式并基于第一个结果为真的条件返回值,可代替多个嵌套的 IF 语句。 |
其他示例 |
---|
如果单元格 A5 含有大于或等于 0 的数字或非数字值,=IF(A5>=0, "正数", "负数") 返回文本“负数”。如果单元格 A5 含有小于 0 的值,函数将返回“负数”。 如果单元格 A5 包含非 0 数字,=IF(A5<>0, "非零值", "零") 返回文本“非零值”。如果单元格 A5 包含 0,函数将返回“零”。 如果单元格 B4 和 B5 都含有数字,=IF(IFERROR(OR(ISEVEN(B4+B5), ISODD(B4+B5)), FALSE), "数字", "非数字") 返回文本“数字”;否则返回文本“非数字”。这可以通过测试以查看这两个单元格之和是偶数还是奇数实现。如果单元格不是数字,EVEN 和 ODD 函数返回错误,IFERROR 函数返回 FALSE;否则返回 TRUE,因为 EVEN 或 ODD 为 TRUE。因此,如果 B4 或 B5 不是数字或布尔值,则 IF 语句返回如果为 FALSE 表达式 "非数字";否则返回如果为 TRUE 表达式 "数字"。 |
示例——避免出现除以 0 错误 |
---|
有时无法构建可避免除以 0 的表格。但是,如果出现除以 0,结果是单元格出现错误值,而这通常不是希望的结果。本示例介绍三种防止出现此错误的方法。 假定单元格 D2 和 E2 各含一个数字。E2 可能会包含 0。你想要将 D2 除以 E2,但避免出现除以 0 的错误。如果单元格 E2 等于 0,则以下三种方法中的每一种都将返回 0;否则,各返回 D2/E2 的结果。 =IF(E2=0, 0, D2/E2) 直接测试单元格 E2,了解是否为 0。 =IFERROR(D2/E2, 0) 在出错时返回 0。除以 0 是一种错误。 =IF(ISERROR(D2/E2), 0, D2/E2) 执行逻辑测试,以了解 D2/E2 是否为 TRUE。 |
使用 REGEX 示例 |
---|
假设 A1 包含“marina@example.com” =IF(A1 = REGEX("([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"), "包含电子邮件", "无电子邮件") 返回“包含电子邮件”。 |