Excel的IF函数有多个条件

  • Share This
Michael Brown

本教程展示了如何在Excel中用AND以及OR逻辑创建多个IF语句。 同时,你将学习如何将IF与其他Excel函数一起使用。

在Excel IF教程的第一部分,我们研究了如何构建一个简单的IF语句,对文本、数字、日期、空白和非空白都有一个条件。 然而,对于强大的数据分析,你可能经常需要一次评估多个条件。 下面的公式例子将告诉你最有效的方法。

    如何使用多条件的IF函数

    从本质上讲,有两种类型的 基于AND/OR逻辑的具有多个标准的IF公式 因此,在你的IF公式的逻辑测试中,你应该使用这些函数之一。

    • 和函数--如果返回TRUE 所有条件 满足;否则为 "FALSE"。
    • OR函数--如果返回TRUE 任何单一条件 满足;否则为FALSE。

    为了更好地说明这一点,让我们调查一些现实生活中的公式例子。

    Excel的IF语句有多个条件(AND逻辑)。

    Excel中带有两个或多个条件的IF的通用公式是这样的。

    IF(AND( 条件1 , 条件2 , ...), value_if_true, value_if_false)

    翻译成人类语言,该公式说:如果条件1为真,条件2为真,返回 value_if_true ; 否则返回 value_if_false .

    假设你有一个表格,在B列和C列中列出了两次考试的分数,要想通过期末考试,学生的两项分数必须大于50分。

    对于逻辑测试,你使用以下AND语句:AND(B2>50, C2>50)

    如果两个条件都是真的,该公式将返回 "通过";如果任何条件是假的--"失败"。

    =IF(AND(B2>50, B2>50), "通过", "失败")

    下面的截图证明了我们的Excel IF /AND公式是正确的。

    以类似的方式,你可以使用Excel的IF函数与多个 文本条件 .

    例如,如果B2和C2都大于50,则输出 "好",否则输出 "坏",公式为:。

    =IF(AND(B2="通过", C2="通过"), "好!", "坏")

    重要提示!AND函数检查 所有条件 这种行为有点不寻常,因为在大多数编程语言中,如果前面的测试结果为FALSE,那么后面的条件就不会被测试。

    在实践中,由于这种特殊性,一个看似正确的IF语句可能会导致错误。 例如,如果单元格A2等于0,下面的公式会返回#DIV/0!("除以0 "错误)。

    =IF(AND(A20, (1/A2)>0.5), "好", "坏")

    为了避免这种情况,你应该使用一个嵌套的IF函数。

    =IF(A20, IF((1/A2)>0.5, "好", "坏"), "坏")

    更多信息,请参见Excel中的IF AND公式。

    Excel IF函数具有多个条件(OR逻辑)。

    要做一件事,如果 任何条件 是满足的,否则做其他事情,使用这种IF和OR函数的组合。

    IF(OR( 条件1 , 条件2 , ...), value_if_true, value_if_false)

    与上面讨论的IF/AND公式不同的是,如果任何一个指定的条件为真,Excel将返回TRUE。

    因此,如果在前面的公式中,我们使用OR而不是AND。

    =IF(OR(B2>50, B2>50), "通过", "失败")

    在这样的条件下,我们的学生有更大的机会通过期末考试(Yvette特别不走运,只考了1分)。

    提示:如果你正在创建一个 多个带文本的IF语句 并用OR逻辑测试一个单元格中的值(即一个单元格可以是 "这个 "或 "那个"),那么你可以用数组常数建立一个更紧凑的公式。

    例如,如果单元格B2是 "已交付 "或 "已支付",要将一项销售标记为 "已结束",公式为:。

    =IF(OR(B2={"交付", "支付"}), "关闭", "" )

    更多的公式例子可以在Excel IF OR函数中找到。

    带有多个AND & OR语句的IF

    如果你的任务需要评估几组多重条件,你将不得不同时利用AND & OR函数。

    在我们的示例表中,假设你有以下检查考试结果的标准。

    • 条件1:考试1>50和考试2>50
    • 条件2:考试1>40和考试2>60

    如果满足其中任何一个条件,期末考试即被视为通过。

    乍一看,这个公式似乎有点棘手,但事实上并不复杂!你只需将上述每个条件表达为一个AND语句,并将其嵌套在OR函数中(因为不一定要同时满足两个条件,任何一个都够了)。

    OR(AND(B2>50, C2>50), AND(B2>40, C2>60)

    然后,使用OR函数进行IF的逻辑测试,并提供所需的 value_if_true value_if_false 结果,你会得到以下带有多个AND/OR条件的IF公式。

    =IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "通过", "失败")

    下面的截图表明,我们的公式是正确的。

    当然,你并不局限于在你的IF公式中只使用两个AND/OR函数。 你可以根据你的业务逻辑需要使用任意多的函数,只要。

    • 在Excel 2007及以上版本中,你有不超过255个参数,而且IF公式的总长度不超过8192个字符。
    • 在Excel 2003及以下版本中,参数不超过30个,而且你的IF公式的总长度不超过1024个字符。

    嵌套的IF语句用于检查多个逻辑测试

    如果你想在一个公式中评估多个逻辑测试,那么你可以将几个函数嵌套在一起。 这种函数被称为 嵌套的IF函数 当你希望根据逻辑测试的结果返回不同的值时,它们证明特别有用。

    这里有一个典型的例子:假设你想把学生的成绩限定为" 良好 ", " 令人满意 "和" 贫穷 ",基于以下分数。

    • 好:60或以上(>=60)。
    • 满意:40至60之间(>40和<60)。
    • 贫困:40或以下(<=40)。

    在编写公式之前,请考虑你要嵌套的函数的顺序。 Excel将按照逻辑测试在公式中出现的顺序进行评估。 一旦一个条件评估为TRUE,后面的条件就不会被测试,这意味着公式在第一个TRUE结果之后就停止了。

    在我们的案例中,这些函数从大到小排列。

    =IF(B2>=60, "好", IF(B2>40, "满意", "差"))

    当然,如果需要的话,你可以嵌套更多的函数(在现代版本中最多可以达到64个)。

    更多信息,请参见如何在Excel中使用多个嵌套的IF语句。

    Excel的IF数组公式有多个条件

    另一种让Excel IF测试多个条件的方法是使用数组公式。

    要用AND逻辑评估条件,请使用星号。

    IF( 条件1 ) * ( 条件2 ) * ..., value_if_true, value_if_false)

    要用OR逻辑测试条件,使用加号。

    IF( 条件1 ) + ( 条件2 ) + ..., value_if_true, value_if_false)

    要正确完成一个数组公式,请同时按下Ctrl + Shift + Enter键。 在Excel 365和Excel 2021中,由于支持动态数组,这也可以作为一个普通公式使用。

    例如,如果B2和C2都大于50,要得到 "通过",公式是:。

    =IF((B2>50) * (C2>50), "通过", "失败")

    在我的Excel 365中,一个普通的公式就能正常工作(正如你在上面的截图中看到的那样)。 在Excel 2019及以下版本中,记得通过使用Ctrl + Shift + Enter快捷键使其成为一个数组公式。

    要用OR逻辑评估多个条件,公式为:。

    =IF((B2>50) + (C2>50), "通过", "失败")

    与其他函数一起使用IF

    本节解释了如何将IF与其他Excel函数结合起来使用,以及这给你带来了哪些好处。

    例1.如果VLOOKUP中出现#N/A错误

    当VLOOKUP或其他查找函数找不到东西时,它会返回一个#N/A的错误。 为了使你的表格看起来更漂亮,你可以在#N/A的情况下返回零、空白或特定的文本。为此,使用这个通用公式。

    如果(isna(vlookup(...))。 价值_if_na , vlookup(...))

    比如说。

    如果#N/A返回0。

    如果E1中的查询值没有找到,则该公式返回0。

    =if(isna(vlookup(e1, a2:b10, 2,false )), 0, vlookup(e1, a2:b10, 2, false)

    如果#N/A,则返回空白。

    如果没有找到查询值,该公式不返回任何东西(一个空字符串)。

    =if(isna(vlookup(e1, a2:b10, 2,false )), "", vlookup(e1, a2:b10, 2, false)

    如果#N/A,则返回某些文本。

    如果没有找到查询值,公式会返回特定的文本。

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "未找到", VLOOKUP(E1, A2:B10, 2, FALSE)

    更多的公式例子,请看Excel中的VLOOKUP与IF语句。

    例2.带有SUM、AVERAGE、MIN和MAX函数的IF

    要根据某些标准对单元格值进行求和,Excel提供了SUMIF和SUMIFS函数。

    在某些情况下,你的业务逻辑可能需要在IF的逻辑测试中包括SUM函数。 例如,要根据B2和C2中的数值之和返回不同的文本标签,公式为:。

    =IF(SUM(B2:C2)>130, "好", IF(SUM(B2:C2)>110, "满意", "差")

    如果总和大于130,结果为 "好";如果大于110--"满意",如果110或更低--"差"。

    以类似的方式,你可以将AVERAGE函数嵌入到IF的逻辑测试中,并根据平均分返回不同的标签。

    =IF(AVERAGE(B2:C2)>65, "好", IF(AVERAGE(B2:C2)>55, "满意", "差")

    假设总分在D列,你可以在MAX和MIN函数的帮助下确定最高和最低值。

    =IF(D2=MAX($D$2:$D$10), "最佳结果", "" )

    =IF(D2=MAX($D$2:$D$10), "最佳结果", "" )

    要在一列中同时有两个标签,可以将上述函数嵌套到另一列中。

    =IF(D2=MAX($D$2:$D$10), "最佳结果", IF(D2=MIN($D$2:$D$10), "最差结果", "" ))

    同样,你可以将IF与你的自定义函数一起使用。 例如,你可以将它与GetCellColor或GetCellFontColor结合起来,根据单元格颜色返回不同的结果。

    此外,Excel还提供了一些函数来根据条件计算数据。 关于详细的公式例子,请查看以下教程。

    • COUNTIF - 计算符合某一条件的细胞数
    • COUNTIFS--计算具有多个标准的细胞
    • SUMIF - 有条件地对单元格求和
    • SUMIFS - 对具有多个标准的单元格进行求和

    例3.带有ISNUMBER, ISTEXT和ISBLANK的IF

    为了识别文本、数字和空白单元格,Microsoft Excel提供了特殊的函数,如ISTEXT、ISNUMBER和ISBLANK。 通过将它们放在三个嵌套的IF语句的逻辑测试中,你可以一次性识别所有不同的数据类型。

    =IF(ISTEXT(A2), "Text", IF(ISNUMBER(A2), "Number", IF(ISBLANK(A2), "Blank", "") ))

    例4.IF和CONCATENATE

    要将IF的结果和一些文本输出到一个单元格中,可以同时使用CONCATENATE或CONCAT(在Excel 2016 - 365中)和IF函数。 例如,。

    =CONCATENATE("你的表现", IF(B1>100, "太棒了!", IF(B1>50, "好", "差"))

    =CONCAT("你的表现", IF(B1>100, "太棒了!", IF(B1>50, "好", "差"))

    看看下面的截图,你几乎不需要解释这个公式的作用。

    Excel中的IF ISERROR/ISNA公式

    现代版本的Excel有特殊的函数来捕获错误,并用另一个计算或预定义的值来代替它们--IFERROR(在Excel 2007及以后的版本中)和IFNA(在Excel 2013及以后的版本中)。 在早期的Excel版本中,你可以使用IF ISERROR和IF ISNA的组合来代替。

    不同的是,IFERROR和ISERROR处理所有可能的Excel错误,包括#VALUE!、#N/A、#NAME?、#REF!、#NUM!、#DIV/0!和#NULL!而IFNA和ISNA只专门处理#N/A错误。

    例如,要用你的自定义文本替换 "除以零 "的错误(#DIV/0!),你可以使用以下公式。

    =if(iserror(a2/b2), "n/a", a2/b2)

    关于Excel中IF函数的使用,我就说这么多了,感谢您的阅读,希望下周在我们的博客上见到您!

    供下载的实践工作手册

    Excel IF 多重标准 - 示例 (.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.