根据对指定的条件计算结果为 TRUE 或 FALSE,返回不同的结果。
可以使用 IF 对数值和公式执行条件检测。
语法
IF(logical_test,value_if_true,value_if_false)
Logical_test 表示计算结果为 TRUE 或 FALSE
的任意值或表达式。例如,A10=100 就是一个逻辑表达式;如果单元格 A10 中的值等于 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 可以是其他公式。
注解
最多可以使用 64 个 IF 函数作为 value_if_true 和 value_if_false 参数进行嵌套以构造更详尽的测试。(示例 3 是嵌套
IF 函数的一个例子。)此外,若要检测多个条件,请考虑使用 LOOKUP、VLOOKUP 或 HLOOKUP 函数。(示例
4 是 LOOKUP 函数的一个例子。)
在计算参数 value_if_true 和 value_if_false 时,IF 会返回相应语句执行后的返回值。
如果函数 IF 的参数包含数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。),则在执行
IF 语句时,数组中的每一个元素都将计算。
Microsoft Excel 还提供了其他一些函数,它们可根据条件来分析数据。例如,如果要计算某单元格区域内某个文本字符串或数字出现的次数,则可使用
COUNTIF 和 COUNTIFS 电子表格函数。若要计算基于某区域内一个文本字符串或一个数值的总和,可使用 SUMIF 和 SUMIFS 工作表函数。
示例 1
如果将示例复制到一个空白工作表中,可能会更易于理解。
如何复制示例
创建一个空白工作簿或工作表。
在帮助主题中选择示例。
注释 请不要选择行或列标题。
从帮助中选择示例
按 Ctrl+C。
在工作表中,选择单元格 A1,然后按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“公式”选项卡的“公式审核”组中,单击“显示公式”按钮。
12 A数据50公式说明(结果)=IF(A2<=100,"预算内","超出预算")如果上面的数字小于等于 100,则公式将显示“Within
budget”。否则,公式显示“Over budget”。(Within budget)=IF(A2=100,SUM(B5:B15),"")如果上面数字为 100,则计算单元格区域 B5:B15,否则返回空文本
("")
示例 2
如果将示例复制到一个空白工作表中,可能会更易于理解。
如何复制示例
创建一个空白工作簿或工作表。
在帮助主题中选择示例。
注释 请不要选择行或列标题。
从帮助中选择示例
按 Ctrl+C。
在工作表中,选择单元格 A1,然后按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“公式”选项卡的“公式审核”组中,单击“显示公式”按钮。
1234 AB实际费用预期费用1500900500900500925公式说明(结果)=IF(A2>B2,"超出预算","预算内")检查第一行是否超出预算 (Over Budget)=IF(A3>B3,"超出预算","预算内")检查第二行是否超出预算
(OK)
示例 3
如果将示例复制到一个空白工作表中,可能会更易于理解。
如何复制示例
创建一个空白工作簿或工作表。
在帮助主题中选择示例。
注释 请不要选择行或列标题。
从帮助中选择示例
按 Ctrl+C。
在工作表中,选择单元格 A1,然后按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“公式”选项卡的“公式审核”组中,单击“显示公式”按钮。
1234 A成绩459078公式说明(结果)=IF(A2>89,"A",IF(A2>79,"B",
IF(A2>69,"C",IF(A2>59,"D","F"))))给第一个成绩指定一个字母等级 (F)=IF(A3>89,"A",IF(A3>79,"B",
IF(A3>69,"C",IF(A3>59,"D","F"))))给第二个成绩指定一个字母等级 (A)=IF(A4>89,"A",IF(A4>79,"B",
IF(A4>69,"C",IF(A4>59,"D","F"))))给第三个成绩指定一个字母等级
(C)
在上例中,第二个 IF 语句同时也是第一个 IF 语句的参数 value_if_false。同样,第三个 IF 语句是第二个 IF 语句的参数
value_if_false。例如,如果第一个 logical_test (Average > 89) 为 TRUE,则返回“A”;如果第一个
logical_test 为 FALSE,则计算第二个 IF 语句,以此类推。
用下列关键字指定数字的字母等级。
如果成绩是
则返回
大于 89 A
80 到 89 B
70 到 79 C
60 到 69 D
低于 60 F
示例 4
在本示例中,要使用 LOOKUP 函数而不是 IF 函数,因为要测试十三个条件,您会发现这样做会更易于阅读和维护。
如果将示例复制到一个空白工作表中,可能会更易于理解。
如何复制示例
创建一个空白工作簿或工作表。
在帮助主题中选择示例。
注释 请不要选择行或列标题。
从帮助中选择示例
按 Ctrl+C。
在工作表中,选择单元格 A1,然后按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“公式”选项卡的“公式审核”组中,单击“显示公式”按钮。
1234 A成绩459078公式说明(结果)=LOOKUP(A2,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})给第一个成绩指定一个字母等级 (F)=LOOKUP(A3,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})给第二个成绩指定一个字母等级 (A-)=LOOKUP(A4,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})给第三个成绩指定一个字母等级 (C+)