Table of contents
该教程解释了如何在Excel中使用多个IF,并为大多数常见任务提供了几个嵌套的If公式例子。
如果有人问你,你最常使用的Excel函数是什么? 大多数情况下,是Excel的IF函数。 一个测试单一条件的普通If公式非常直接,也很容易编写。 但如果你的数据需要更复杂的多条件逻辑测试呢? 在这种情况下,你可以在一个公式中包含几个IF函数,这些多If语句被称为 Excel 嵌套IF 嵌套If语句的最大优点是,它允许你检查一个以上的条件,并根据这些检查的结果返回不同的值,所有这些都在一个公式中。
微软的Excel有局限性。 嵌套IF的层次 在Excel 2003和更低的版本中,最多允许有7个层次。 在Excel 2007和更高的版本中,你可以在一个公式中嵌套最多64个IF函数。
在本教程的后面,你会发现几个Excel嵌套If的例子,以及对其语法和逻辑的详细解释。
例1.经典的嵌套IF公式
下面是一个典型的Excel If多条件的例子。 假设你在A列有一个学生名单,B列有他们的考试分数,你想用以下条件对分数进行分类。
- 优秀:超过249
- 良好:249至200之间,包括
- 满意:在199和150之间,包括在内
- 穷人:150岁以下
现在,让我们根据上述条件写一个嵌套的IF函数。 从最重要的条件开始,并使你的函数尽可能的简单,这被认为是一个好的做法。 我们的Excel嵌套IF公式如下。
=IF(B2>249, "优秀", IF(B2>=200, "良好", IF(B2>150, "满意", "差"))
并且完全按照它应该的方式工作。
了解Excel嵌套的IF逻辑
我听到有些人说,Excel的多个If让他们抓狂 :) 试着从不同的角度看它。
该公式实际上告诉Excel要做的是评估 逻辑_测试 的第一个IF函数,如果条件得到满足,则返回在该函数中提供的值。 value_if_true 如果第1个If函数的条件没有得到满足,那么就测试第2个If语句,以此类推。
IF( 检查是否 B2>=249。 如果是真的,则返回 "优秀"。 否则IF( 检查是否 B2>=200。 如果是真的,则返回 "好"。 否则
IF( 检查是否 B2>150。 如果是真的,则返回 "令人满意"。 如果是假的 -
返回 "贫穷"))
例2.带有算术计算的多个If
这里还有一个典型的任务:单价根据指定的数量而变化,你的目标是写一个公式,计算特定单元格中输入的任何数量的项目的总价格。 换句话说,你的公式需要检查多个条件,并根据指定数量属于哪个数量范围而执行不同计算。
单位数量 | 每单位价格 |
1至10 | $20 |
11至19岁 | $18 |
20至49岁 | $16 |
50至100 | $13 |
超过101 | $12 |
这项任务也可以通过使用多个IF函数来完成,其逻辑与上例相同,唯一不同的是,你用指定的数量乘以嵌套IF返回的值(即相应的每单位价格)。
假设用户在单元格B8中输入数量,公式如下。
=B8*IF(B8>=101, 12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF(B8>=1, 20, ")))))
而结果将看起来与此类似。
正如你所理解的,这个例子只演示了一般的方法,你可以根据你的特定任务轻松地定制这个嵌套的If函数。
例如,不要在公式中 "硬编码 "价格,你可以引用包含这些值的单元格(单元格B2至B6)。 这将使你的用户能够编辑源数据而不必更新公式。
=B8*IF(B8>=101,B6, IF(B8>=50, B5, IF(B8>=20, B4, IF( B8>=11, B3, IF(B8>=1, B2, "" )))))
或者,你可能想包括一个额外的IF函数,以固定数量范围的上限、下限或两者的界限。 当数量超出范围时,公式将显示一个 "超出范围 "的信息。 例如。
=IF(OR(B8>200,B8=101,12, IF(B8>=50, 13, IF(B8>=20, 16, IF( B8>=11, 18, IF( B8>=1, 20, "))))))
上面描述的嵌套IF公式在所有版本的Excel中都适用。 在Excel 365和Excel 2021中,你也可以使用IFS函数达到同样的目的。
熟悉数组公式的高级Excel用户可以使用这个公式,它的作用基本上与上面讨论的嵌套IF函数相同。 虽然数组公式更难理解,更难写,但它有一个无可争议的优势--你指定了包含条件的单元格范围,而不是单独引用每个条件。 这使得该公式更加灵活,如果你的用户碰巧改变了任何现有的条件或增加了一个新的条件,你将只需要更新公式中的一个范围参考。
Excel嵌套IF--技巧与窍门
正如你刚才所看到的,在Excel中使用多个IF并不是什么火箭科学。 下面的提示将帮助你改进你的嵌套IF公式,防止常见的错误。
嵌套的IF限制
在Excel 2007 - Excel 365中,你最多可以嵌套64个IF函数。 在旧版本的Excel 2003和更低版本中,最多可以使用7个嵌套的IF函数。 然而,你可以在一个公式中嵌套很多IF并不意味着你应该这样做。 请记住,每增加一个层次都会使你的公式更难以理解和排除故障。 如果你的公式有太多的嵌套层次,你可能会想通过使用这些替代品之一来优化它。
嵌套的IF函数的顺序很重要
Excel的嵌套IF函数按照逻辑测试在公式中出现的顺序进行评估,只要其中一个条件评估为TRUE,后面的条件就不会被测试。 换句话说,公式在第一个TRUE结果后就停止了。
让我们看看它的实际效果。 当B2等于274时,下面的嵌套IF公式会评估第一个逻辑测试(B2>249),并返回 "优秀",因为这个逻辑测试是 "真"。
=IF(B2>249, "优秀", IF(B2>=200, "良好", IF(B2>150, "满意", "差"))
现在,让我们把IF函数的顺序倒过来。
=IF(B2>150, "满意", IF(B2>200, "好", IF(B2>249, "优秀", "差"))
该公式测试了第一个条件,由于274大于150,这个逻辑测试的结果也是TRUE。 因此,该公式返回 "满意",而没有测试其他条件。
你看,改变IF函数的顺序会改变结果。
评估公式逻辑
要逐步观察你的嵌套IF公式的逻辑流程,可以使用 "评估公式 "功能,它位于 公式 选项卡,在 公式审计 下划线的表达式是当前正在评估的部分,点击 评估 按钮将向你展示评估过程中的所有步骤。
例如,下面截图中显示的嵌套IF公式的第一个逻辑测试的评估将如下:B2>249; 274>249; TRUE; Excellent.
平衡嵌套的IF函数的括号
在Excel中嵌套IF的主要挑战之一是小括号对的匹配。 如果小括号不匹配,你的公式就无法工作。 幸运的是,Microsoft Excel提供了几个功能,可以帮助你在编辑公式时平衡小括号。
- 如果你有一组以上的小括号,小括号对就会用不同的颜色着色,以便使开始的小括号与结束的小括号相匹配。
- 当你关闭一个括号时,Excel会短暂地高亮显示匹配的一对括号。 当你使用方向键在公式中移动时,也会产生同样的加粗或 "闪烁 "效果。
更多信息,请参见《Excel公式中的括号对匹配》。
区别对待文本和数字
当建立嵌套IF公式的逻辑测试时,记住文本和数字应该被区别对待--总是用双引号括住文本值,但永远不要在数字上加引号。
对。 =IF(B2>249, "优秀",...)
错了。 =IF(B2>"249", "Excellent",…)
即使B2中的值大于249,第二个公式的逻辑测试也会返回FALSE。 为什么? 因为249是一个数字,而 "249 "是一个数字字符串,这是两码事。
添加空格或换行符,使嵌套的IF更容易阅读
当建立一个有多个嵌套IF层的公式时,你可以通过用空格或换行符来分隔不同的IF函数,使公式的逻辑更加清晰。 Excel并不关心公式中的额外间距,所以你可以不用担心会有误。
要把公式的某一部分移到下一行,只需点击你想插入换行的地方,然后按Alt + Enter 。 然后,根据需要扩大公式栏,你会发现你的嵌套IF公式变得更容易理解。
嵌套IF在Excel中的替代方案
为了绕过Excel 2003和旧版本中7个嵌套IF函数的限制,并使你的公式更加紧凑和快速,可以考虑使用以下Excel嵌套IF函数的替代品。
- 要测试多个条件并根据测试结果返回不同的值,你可以使用CHOOSE函数而不是嵌套的IF。
- 建立一个参考表,并使用VLOOKUP进行近似匹配,如本例所示:VLOOKUP代替了Excel中的嵌套IF。
- 使用IF与逻辑函数OR/AND,正如这些例子所展示的那样。
- 使用一个数组公式,如本例所示。
- 通过使用CONCATENATE函数或连接运算符(&)来组合多个IF语句。 这里可以找到一个公式例子。
- 对于有经验的Excel用户来说,使用多个嵌套IF函数的最佳选择可能是使用VBA创建一个自定义工作表函数。
这就是如何在Excel中使用带有多个条件的If公式。 感谢你的阅读,希望下周能在我们的博客上见到你。
供下载的实践工作手册
嵌套的If Excel语句(.xlsx文件)。