Excel中的嵌套IF--具有多个条件的公式

  • Share This
Michael Brown

该教程解释了如何在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函数的替代品。

    1. 要测试多个条件并根据测试结果返回不同的值,你可以使用CHOOSE函数而不是嵌套的IF。
    2. 建立一个参考表,并使用VLOOKUP进行近似匹配,如本例所示:VLOOKUP代替了Excel中的嵌套IF。
    3. 使用IF与逻辑函数OR/AND,正如这些例子所展示的那样。
    4. 使用一个数组公式,如本例所示。
    5. 通过使用CONCATENATE函数或连接运算符(&)来组合多个IF语句。 这里可以找到一个公式例子。
    6. 对于有经验的Excel用户来说,使用多个嵌套IF函数的最佳选择可能是使用VBA创建一个自定义工作表函数。

    这就是如何在Excel中使用带有多个条件的If公式。 感谢你的阅读,希望下周能在我们的博客上见到你。

    供下载的实践工作手册

    嵌套的If Excel语句(.xlsx文件)。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.