Table of contents
本教程展示了如何在Excel中使用IF与AND函数来检查一个公式中的多个条件。
世界上有些东西是有限的,有些则是无限的,而IF函数似乎就是其中之一。 在我们的博客上,我们已经有了一些Excel IF教程,而且每天都在发现新的用途。 今天,我们要看看如何将IF与AND函数一起使用,同时评估两个或更多的条件。
Excel中的IF AND语句
为了建立IF AND语句,你显然需要在一个公式中结合IF和AND函数。 下面是方法。
IF(AND( 条件1 , 条件2 ,...), value_if_true, value_if_false)翻译成普通英语,该公式如下:如果条件1为真,条件2为真,则做一件事,否则做其他事。
作为一个例子,让我们做一个公式,检查B2是否为 "交付",C2是否为空,并根据结果,做以下的一项。
- 如果这两个条件都是 "真",则将该订单标记为 "关闭"。
- 如果任何一个条件是FALSE或者两个条件都是FALSE,那么返回一个空字符串("")。
=IF(AND(B2="交付", C2""), "关闭", "")
下面的截图显示了Excel中的IF AND函数。
如果你想在逻辑测试评估为FALSE的情况下返回一些值,在 value_if_false 争论。 例如。
=IF(AND(B2="交付", C2""), "关闭", "开放")
如果B列是 "交付 "且C列有任何日期(非空白),修改后的公式输出 "关闭"。 在所有其他情况下,它返回 "开放"。
注意:当在Excel中使用IF AND公式来评估文本条件时,请记住小写和大写被视为相同的字符。 如果你正在寻找一个对大小写敏感的IF AND公式,请将AND的一个或多个参数包入EXACT函数中,就像在链接的例子中那样。
现在你知道了Excel IF AND语句的语法,让我来告诉你它能解决什么样的任务。
Excel的IF:大于和小于
在前面的例子中,我们是在两个不同的单元格中测试两个条件。 但有时你可能需要在同一个单元格中运行两个或更多的测试。 一个典型的例子是检查一个单元格的值是否为 两个数字之间 Excel的IF和函数也可以轻松做到这一点。
假设你在B列有一些销售数字,你被要求标记大于50美元但小于100美元的金额。 要做到这一点,在C2中插入这个公式,然后把它复制到下一列。
=IF(AND(B2>50, B2<100), "x", "")
如果你需要包括 边界值 (50和100),使用 小于或等于 操作符(<=)和 大于或等于 (>=)运算符。
=IF(AND(B2>=50, B2<=100), "x", "")
要想在不改变公式的情况下处理一些其他的边界值,可以在两个单独的单元格中输入最小和最大的数字,并在公式中引用这些单元格。 为了使公式在所有行中正常工作,请确保对边界单元格(在我们的例子中是$F$1和$F$2)使用绝对引用。
=IF(AND(B2>=$F$1, B2<=$F$2), "x", "" )
通过使用一个类似的公式,你可以检查是否一个 日期 瀑布 在指定范围内 .
例如,让我们标记2018年9月10日至2018年9月30日之间的日期,包括在内。 一个小障碍是,日期不能直接提供给逻辑测试。 为了让Excel理解日期,它们应该被括在DATEVALUE函数中,像这样。
=IF(AND(B2>=DATEVALUE("9/10/2018"), B2<=DATEVALUE("9/30/2018")), "x", "")
或者直接输入 来自 和 拟 在两个单元格(本例中为$F$1和$F$2)中的日期,通过使用已经熟悉的IF AND公式从这些单元格中 "拉 "出来。
=IF(AND(B2>=$F$1, B2<=$F$2), "x", "" )
欲了解更多信息,请参见两个数字或日期之间的Excel IF语句。
如果这个和那个,那么就计算一下
除了返回预定义的值之外,Excel的IF AND函数还可以根据指定的条件是 "真 "还是 "假 "来执行不同的计算。
为了证明这个方法,我们将为金额大于或等于100美元的 "关闭 "销售计算5%的奖金。
假设金额在B列,订单状态在C列,公式如下。
=IF(AND(B2>=100, C2="关闭"), B2*10%, 0)
上述公式将零分配给其余的订单( value_if_false = 如果你愿意给不符合条件的订单一个小的刺激性奖金,比如说3%,那么就把相应的方程式包括在 value_if_false 争论。
=IF(AND(B2>=100, C2="关闭"), B2*10%, B2*3%)
Excel中的多个IF AND语句
你可能已经注意到了,我们在上述所有的例子中只评估了两个标准。 但是没有什么能阻止你在你的IF AND公式中包括三个或更多的测试,只要它们符合Excel的这些一般限制。
- 在Excel 2007及以上版本中,一个公式中最多可使用255个参数,公式总长度不超过8192个字符。
- 在Excel 2003及以下版本中,允许的参数不超过30个,总长度不超过1,024个字符。
作为一个多和条件的例子,请考虑这些条件。
- 金额(B2)应大于或等于100美元
- 订单状态(C2)为 "关闭"
- 交付日期(D2)是在本月内
现在,我们需要一个IF AND语句来确定3个条件都为 "真 "的订单。 它就在这里。
=IF(AND(B2>=100, C2="关闭", MONTH(D2)=MONTH(TODAY()), "x", "")
考虑到撰写本文时的 "当前月份 "是10月,该公式得出以下结果。
嵌套的IF AND语句
在处理大型工作表时,有可能需要一次检查几组不同的AND条件。 为此,你可以采用一个经典的Excel嵌套IF公式,并用AND语句扩展其逻辑测试,像这样。
IF(AND(...), 输出1 , IF(AND(...), 输出2 , IF(AND(...), 输出3 , 输出4 )))为了得到大致的概念,请看下面的例子。
假设你想根据运输成本和预计交货时间(ETD)来对你的服务进行评级。
- 优秀 : 运费低于20美元,ETD低于3天
- 贫穷 : 运费超过30美元,ETD超过5天
- 平均值 :任何介于两者之间的东西
要做到这一点,你要写两个单独的IF AND语句。
IF(AND(B2<20, C2<3), "优秀", ...)
IF(AND(B2>30, C2>5), "穷", ...)
......并将一个嵌进另一个。
=IF(AND(B2>30, C2>5), "差", IF(AND(B2<20, C2<3), "优", "一般")
其结果将与此相似。
更多的公式例子可以在Excel嵌套的IF AND语句中找到。
Excel中区分大小写的IF和函数
正如本教程开头提到的,Excel的IF和公式不区分大写和小写字符,因为AND函数本质上是不区分大小写的。
如果你在工作中与 区分大小写 数据,并希望在考虑到文本情况下评估AND条件,在EXACT函数中做每个单独的逻辑测试,并将这些函数嵌套到你的AND语句中。
IF(AND(EXACT( 电池 ," 条件1 "),EXACT( 电池 ," 条件2 "), value_if_true, value_if_false)在这个例子中,我们将标记一个特定客户的订单(例如,名为 "S "的公司)。 网络空间 ),金额超过某个数字,例如100美元。
正如你在下面的截图中所看到的,B列中的一些公司名称看起来与摘录的字符大小写相同,但它们是不同的公司,所以我们必须检查这些名称。 正是 C列的金额是数字,我们对它们进行常规的 "大于 "测试。
=IF(AND(EXACT(B2, "Cyberspace"), C2>100), "x", "" )
为了使公式更加灵活,你可以在两个单独的单元格中输入目标客户名称和金额,并引用这些单元格。 只要记住用$符号锁定单元格引用(在我们的例子中是$G$1和$G$2),这样当你把公式复制到其他行时,它们就不会改变。
=IF(AND(EXACT(B2, $G$1), C2>$G$2), "x", "" )
现在,你可以在引用的单元格中输入任何名称和金额,该公式将在你的表格中标记相应的订单。
Excel中的IF或AND公式
在Excel的IF公式中,你并不局限于只使用一个逻辑函数。 为了检查多个条件的各种组合,你可以自由地结合IF、AND、OR和其他函数来运行所需的逻辑测试。 下面是一个IF AND OR公式的例子,在AND中测试几个OR条件。 现在,我将向你展示如何在OR中进行两个或多个AND测试功能。
假设,你希望在两个客户的订单上标注大于某个数字的金额,比如100美元。
在Excel语言中,我们的条件是这样表达的。
OR(AND() 客户1 , 数量 >100), AND( 客户2 , 数量 >100)
假设客户名称在B列,金额在C列,2个目标名称在G1和G2,目标金额在G3,你用这个公式将相应的订单标记为 "x"。
=IF(OR(AND(B2=$G$1, C2>$G$3), AND(B2=$G$2, C2>$G$3)), "x", "" )
用更紧凑的语法也可以达到同样的效果。
=IF(AND(OR(B2=$G$1,B2=$G$2), C2>$G$3), "x", "" )
不确定你是否完全理解公式的逻辑? 更多的信息可以在Excel IF与多个AND/OR条件中找到。
这就是你如何在Excel中一起使用IF和AND函数的方法。 谢谢你的阅读,下周见!
实践工作手册
IF AND Excel--公式实例(.xlsx文件)