Table of contents
本教程解释了Excel逻辑函数AND、OR、XOR和NOT的精髓,并提供了演示其常见和创造性用途的公式实例。
上周我们挖掘了Excel逻辑运算符的洞察力,这些运算符用于比较不同单元格中的数据。 今天,你将看到如何扩展逻辑运算符的使用,构建更精细的测试,以执行更复杂的计算。 Excel逻辑函数,如AND、OR、XOR和NOT将帮助你完成这些工作。
Excel逻辑函数--概述
Microsoft Excel提供了4个逻辑函数来处理逻辑值。 这些函数是AND、OR、XOR和NOT。 当你想在你的公式中进行一个以上的比较或测试多个条件而不是只有一个条件时,你会使用这些函数。 除了逻辑运算符,Excel逻辑函数在评估其参数时返回TRUE或FALSE。
下表简要介绍了每个逻辑函数的作用,以帮助你为特定任务选择正确的公式。
职能 | 描述 | 公式示例 | 公式描述 |
和 | 如果所有的参数评估为TRUE,则返回TRUE。 | =AND(A2>=10, B2<5) | 如果A2单元格中的数值大于或等于10,且B2中的数值小于5,则该公式返回TRUE,否则返回FALSE。 |
或 | 如果任何参数评估为TRUE,则返回TRUE。 | =OR(A2>=10, B2<5) | 如果A2大于或等于10,或者B2小于5,或者两个条件都满足,该公式返回TRUE。 如果两个条件都不满足,该公式返回FALSE。 |
XOR | 返回所有参数的逻辑独占或。 | =XOR(A2>=10, B2<5) | 如果A2大于或等于10或B2小于5,该公式返回TRUE。如果两个条件都不满足或两个条件都满足,该公式返回FALSE。 |
不 | 返回其参数的反向逻辑值。 即:如果参数是FALSE,则返回TRUE,反之亦然。 | =NOT(A2>=10) | 如果A1单元格中的数值大于或等于10,该公式返回FALSE;否则返回TRUE。 |
除了上述四个逻辑函数外,Microsoft Excel还提供了三个 "条件 "函数--IF、IFERROR和IFNA。
Excel逻辑函数--事实与数据
- 在逻辑函数的参数中,你可以使用单元格引用、数字和文本值、布尔值、比较运算符和其他Excel函数。 然而,所有参数必须评估为TRUE或FALSE的布尔值,或包含逻辑值的引用或数组。
- 如果一个逻辑函数的一个参数包含任何 空细胞 如果所有的参数都是空单元格,公式会返回#VALUE!错误。
- 如果逻辑函数的一个参数包含数字,那么0的值为FALSE,所有其他数字包括负数的值为TRUE。 例如,如果A1:A5单元格包含数字,如果没有一个单元格包含0,公式=AND(A1:A5)将返回TRUE,否则返回FALSE。
- 如果没有一个参数评估为逻辑值,则逻辑函数返回#VALUE!错误。
- 如果你拼错了函数的名字,或者试图在不支持该函数的早期Excel版本中使用该函数,则逻辑函数会返回#NAME? 错误。 例如,XOR函数只能在Excel 2016和2013中使用。
- 在Excel 2007和更高版本中,你可以在逻辑函数中包含多达255个参数,只要公式的总长度不超过8192个字符。 在Excel 2003和更低版本中,你最多可以提供30个参数,公式的总长度不得超过1024个字符。
在Excel中使用AND函数
AND函数是逻辑函数家族中最受欢迎的成员。 当你需要测试几个条件并确保所有条件都得到满足时,它就会派上用场。 从技术上讲,AND函数测试你指定的条件,如果所有的条件都评估为 "真",则返回 "真",否则返回 "假"。
Excel AND函数的语法如下。
AND(logical1, [logical2], ...)其中logical是你想测试的条件,可以评估为TRUE或FALSE。 第一个条件(logical1)是必须的,后续条件是可选的。
现在,让我们来看看一些公式的例子,演示如何在Excel公式中使用AND函数。
公式 | 描述 |
=AND(A2="Bananas", B2>C2) | 如果A2包含 "Bananas "并且B2大于C2,则返回TRUE,否则返回FALSE。 |
=AND(B2>20, B2=C2) | 如果B2大于20且B2等于C2,则返回TRUE,否则返回FALSE。 |
=AND(A2="香蕉", B2>=30, B2>C2) | 如果A2包含 "Bananas",B2大于或等于30且B2大于C2,则返回TRUE,否则返回FALSE。 |
Excel AND函数--常见用途
就其本身而言,Excel的AND函数并不令人兴奋,而且用处很小。 但与其他Excel函数相结合,AND可以大大扩展你工作表的功能。
Excel中AND函数最常见的用途之一是在IF函数的logical_test参数中发现的,用来测试几个条件,而不仅仅是一个条件。 例如,你可以在IF函数中嵌套上述任何一个AND函数,得到类似这样的结果。
=IF(AND(A2="香蕉", B2>C2), "好", "坏")
关于更多IF/AND公式的例子,请查看他的教程:Excel IF函数与多个AND条件。
一个用于BETWEEN条件的Excel公式
如果你需要在Excel中创建一个在给定的两个值之间挑选所有值的公式,一个常见的方法是使用IF函数,在逻辑测试中使用AND。
例如,你在A、B和C列中有3个值,你想知道A列中的一个值是否在B和C值之间。 要制作这样一个公式,只需要带嵌套的IF函数和几个比较运算符。
检查X是否在Y和Z之间的公式,包括在内。
=IF(AND(A2>=B2,A2<=C2),"Yes", "No")
检查X是否在Y和Z之间的公式,不包括在内。
=IF(AND(A2>B2, A2
正如上面的截图所示,该公式对所有的数据类型--数字、日期和文本值都能完美工作。 当比较文本值时,该公式按照字母顺序逐个检查。 例如,它指出 苹果 在不在 杏色 和 香蕉 因为第二个 "p "在 苹果 中的 "r "之前。 杏色 请参阅《使用Excel比较运算符与文本值》以了解更多细节。
正如你所看到的,IF/AND公式简单、快速,而且几乎是通用的。 我说 "几乎 "是因为它不包括一种情况。 上述公式意味着B列中的值小于C列中的值,即B列总是包含下限值,而C列则是上限值。 这就是为什么该公式返回" 没有 "在第6行中,A6为12,B6为15,C6为3;在第8行中,A8为24-11,B8为26-12,C8为21-10。
但是,如果你希望你的公式能够正确地工作,而不管下限和上限在哪里呢? 在这种情况下,使用Excel的MEDIAN函数,它可以返回给定数字的中位数(即一组数字中的中间数字)。
因此,如果你把IF函数的逻辑测试中的AND换成MEDIAN,公式就会变成这样。
=IF(A2=MEDIAN(A2:C2), "是", "不是")
而你将得到以下结果。
正如你所看到的,MEDIAN函数对数字和日期完美工作,但对文本值则返回#NUM!错误。 唉,没有人是完美的 :)
如果你想要一个完美的Between公式,既适用于文本值,也适用于数字和日期,那么你将不得不使用AND / OR函数构建一个更复杂的逻辑文本,像这样。
=IF(OR(AND(A2>B2, A2
在Excel中使用OR函数
和AND一样,Excel的OR函数也是一个基本的逻辑函数,用于比较两个数值或语句。 不同的是,如果至少有一个参数评估为TRUE,OR函数会返回TRUE,如果所有参数都是FALSE,则返回FALSE。 OR函数在Excel 2016-2000的所有版本中都可用。
Excel的OR函数的语法与AND非常相似。
OR(logical1, [logical2], ...)其中逻辑是你想测试的东西,可以是 "真 "或 "假"。 第一个逻辑是必须的,其他条件(在现代Excel版本中最多255个)是可选的。
现在,让我们写下几个公式,让你感受一下Excel中的OR函数是如何工作的。
公式 | 描述 |
=OR(A2="Bananas", A2="Oranges") | 如果A2包含 "香蕉 "或 "橙子",返回TRUE,否则返回FALSE。 |
=OR(B2>=40, C2>=20) | 如果B2大于或等于40或C2大于或等于20,返回TRUE,否则返回FALSE。 |
=OR(B2=" ",) | 如果B2或C2是空的或两者都是空的,返回TRUE,否则返回FALSE。 |
与Excel的AND函数一样,OR被广泛用于扩展其他执行逻辑测试的Excel函数的用途,例如IF函数。 下面是几个例子。
带有嵌套OR的IF函数
=IF(OR(B2>30, C2>20), "好", "坏")
该公式返回" 良好 "如果B3单元格中的数字大于30或C2中的数字大于20," 坏的 "否则。
Excel AND/OR函数在一个公式中的应用
当然,如果你的业务逻辑需要,没有什么能阻止你在一个公式中同时使用AND和OR这两个函数。 这种公式可以有无限的变化,归结为以下基本模式。
=AND(OR(Cond1, Cond2), Cond3)
=AND(OR(Cond1, Cond2), OR(Cond3, Cond4)
=OR(AND(Cond1, Cond2), Cond3)
=OR(AND(Cond1,Cond2), AND(Cond3,Cond4))
例如,如果你想知道哪些托运的香蕉和橙子已经卖完了,即 "库存 "数字(B列)等于 "已售 "数字(C列),下面的OR/AND公式可以迅速向你显示。
=OR(AND(A2="香蕉", B2=C2), AND(A2="橙子", B2=C2))
Excel条件格式化中的OR函数
=or($b2="", $c2="")
上述OR公式的规则突出显示了在B列或C列或两者中含有空单元格的行。
关于条件格式化公式的更多信息,请看以下文章。
- Excel条件格式化公式
- 根据一个单元格的值改变行的颜色
- 根据另一个单元格的值改变一个单元格的颜色
- 如何突出显示Excel中的每一行
在Excel中使用XOR函数
在Excel 2013中,微软引入了XOR函数,这是一个逻辑上的 独家或 对于那些对任何编程语言或计算机科学有一定了解的人来说,这个术语肯定是熟悉的。 对于那些不了解的人来说,"Exclusive Or "的概念一开始可能有点难以掌握,但希望下面的解释和公式实例会有所帮助。
XOR函数的语法与OR的相同。
XOR(逻辑1, [逻辑2], ...)第一个逻辑语句(逻辑1)是必须的,其他的逻辑值是可选的。 你可以在一个公式中最多测试254个条件,这些条件可以是逻辑值、数组或引用,评估结果为TRUE或FALSE。
在最简单的版本中,一个XOR公式只包含2个逻辑语句和返回。
- 如果任一参数评估为TRUE,则为TRUE。
- 如果两个参数都是 "true "或两个参数都不是 "true",则为 "false"。
从公式的例子来看,这可能更容易理解。
公式 | 结果 | 描述 |
=XOR(1>0, 2<1) | 为真 | 返回TRUE,因为第一个参数是TRUE,第二个参数是FALSE。 |
=XOR(1<0, 2<1) | 失败 | 返回FALSE,因为两个参数都是FALSE。 |
=XOR(1>0, 2>1) | 失败 | 返回FALSE,因为两个参数都是TRUE。 |
当增加更多的逻辑语句时,Excel中的XOR函数的结果是:。
- 如果有奇数的参数评估为TRUE,则为TRUE。
- 如果TRUE语句的总数是偶数,或者所有的语句都是FALSE,则FALSE。
下面的截图说明了这一点。
如果你不确定Excel的XOR函数如何应用于现实生活中的场景,请考虑下面的例子。 假设你有一张参赛者和他们前两场比赛结果的表格。 你想知道哪位支付者应根据以下条件参加第三场比赛。
- 赢得第一场和第二场比赛的选手自动晋级到下一轮,不必参加第三场比赛。
- 第一场比赛都输了的选手被淘汰出局,也不参加第三场比赛。
- 赢得第一场或第二场比赛的选手应进行第三场比赛,以决定谁进入下一轮,谁不进入。
一个简单的XOR公式完全按照我们的要求工作。
=XOR(B2="Won", C2="Won")
而如果你把这个XOR函数嵌套到IF公式的逻辑测试中,你会得到更合理的结果。
=IF(XOR(B2="赢", C2="赢"), "是", "否")
在Excel中使用NOT函数
就语法而言,NOT函数是最简单的Excel函数之一。
NOT(逻辑)你在Excel中使用NOT函数来反转其参数值。 换句话说,如果逻辑评估为FALSE,NOT函数返回TRUE,反之亦然。 例如,以下两个公式都返回FALSE。
=NOT(TRUE)
=NOT(2*2=4)
为什么要得到这样可笑的结果呢? 在某些情况下,你可能更想知道某个条件什么时候没有满足,而不是什么时候满足。 例如,在审查服装清单时,你可能想排除一些不适合你的颜色。 我不是特别喜欢黑色,所以我用这个公式去做。
=NOT(C2="黑色")
像往常一样,在Microsoft Excel中,有不止一种方法来做一件事,你可以通过使用不等于操作符来达到相同的结果:=C2 "黑色"。
如果你想在一个公式中测试几个条件,你可以使用NOT与AND或OR函数相连接。 例如,如果你想排除黑色和白色的颜色,公式会这样。
=NOT(OR(C2="black", C2="white"))
而如果你宁可不要黑大衣,同时可以考虑黑色外套或后毛皮大衣,你应该使用NOT与Excel的AND函数相结合。
=NOT(AND(C2="black", B2="coat"))
在Excel中,NOT函数的另一个常见用途是反转其他一些函数的行为。 例如,你可以将NOT和ISBLANK函数结合起来,创建微软Excel所缺乏的ISNOTBLANK公式。
如你所知,如果A2单元格是空白的,公式=ISBLANK(A2)返回TRUE。 NOT函数可以将这个结果逆转为FALSE:=NOT(ISBLANK(A2))
然后,你可以更进一步,用NOT / ISBLANK函数创建一个嵌套的IF语句,用于现实生活中的任务。
=IF(NOT(ISBLANK(C2)), C2*0.15, "没有奖金 :( ")
翻译成简单的英语,该公式告诉Excel做以下事情。 如果单元格C2不是空的,就把C2中的数字乘以0.15,这就给每个有额外销售业绩的销售员15%的奖金。 如果C2是空的,就出现 "没有奖金:("的文字。
从本质上讲,这就是你如何使用Excel中的逻辑函数。 当然,这些例子只触及了AND、OR、XOR和NOT功能的表面。 了解了基础知识,你现在可以通过处理实际任务和为你的工作表编写聪明的详细公式来扩展你的知识。