精通Excel数组公式012:布尔逻辑:AND和OR
excelperfect
导言:本文为《精通Excel数组公式(学习笔记版)》中的一部分内容节选。如果你想要系统学习并熟练掌握Excel数组公式,可以到知识星球App的完美Excel社群下载这本电子书学习。
布尔(Boolean)是一种数据类型,仅有两个值,即TRUE或FALSE,或者1或0:
TRUE = 1
FALSE = 0
在Excel公式中,经常要用到逻辑条件。对于AND条件来说,只有所有的逻辑测试都为TRUE时,结果才为TRUE;对于OR条件来说,只要有一个逻辑测试为TRUE,结果就是TRUE。下图1列出了3个条件时的所有逻辑测试。
图1
AND条件
当执行AND逻辑测试时,所有的测试都必须为TRUE,最终的AND逻辑测试结果才是TRUE。如果任何一个逻辑测试为FALSE,AND逻辑测试的结果为FALSE。
下面展示了一些AND条件的示例。
图2:公式[1]至[4]使用了AND条件。公式[5]使用布尔乘法的AND条件。公式[6]使用布尔乘法和除法的AND条件。公式[7]使用IF函数和布尔AND条件。
图3:带筛选的数据透视表执行AND条件的求和运算。
图4:具有已应用筛选和总计行的表功能可以使用AND条件进行平均值计算。
图5:筛选功能可以使用AND条件筛选表。
图6:高级筛选功能可以使用AND条件提取记录。
图7:在辅助列中使用了带有4个逻辑测试的AND函数。
图8:使用逻辑测试相乘来创建布尔辅助列。
正如在上述例子中所看到的,诸如像SUMIFS函数、使用布尔运算或IF函数的数组公式、数据透视表、带有筛选和汇总行的表、筛选、高级筛选、以及辅助列解决方法都可以使用AND条件运算。
OR条件
当执行OR逻辑测试时,只要有一个测试为TRUE,最终的OR逻辑测试结果就是TRUE。只有当所有的逻辑测试都为FALSE时,OR逻辑测试的结果才为FALSE。我们经常使用“至少有一个”和“一个或多个”逻辑测试来描述OR逻辑测试。
下面是两个OR条件的示例。
图9:单元格中的姓名是否是“Gidget”或“Rodger”。
图10:测试客户的净资产大于100000,或者信用评级大于或等于3.5。
上图10所示的例子中,OR条件测试获得了两个TRUE值,此时必须小心,特别是使用其作为另一公式的元素时。
1.OR逻辑测试结果为1个TRUE值:通常指向单个单元格且遍历单列。
2.OR逻辑测试结果多于1个TRUE值:通常指向不同的单元格且遍历多列。
示例:使用不能返回多个TRUE值的OR逻辑测试统计
如下图11所示,使用了5个公式分别统计满足条件的项目数量。
图11:OR条件统计在单个单元格且单列中查找。
示例:使用返回多个TRUE值的OR逻辑测试统计
如下图12所示,如果在创建OR条件公式时不细心,那么可能会统计两次。示例统计净资产大于100000或者信用评级大于等于3.5的客户数。因为两个问题在两列中查询,对于特定的客户可能会返回两个TRUE值,导致该客户被统计两次,例如Fruits Inc.的净资产大于100000且信用评级大于等于3.5,在公式[4]和[5]中对该公司统计了两次,返回不正确的结果。而公式[1]、[2]和[3]只统计一次,返回正确的结果。
图12:OR逻辑测试指向两个不同的单元格,因此可能返回两个TRUE值;OR条件统计公式查找两列。
用于求和、求平均值和查找最小或最大值的OR条件
示例如下图13至图15所示。
图13:使用应用到单列的OR条件来求和和求平均值。
图14:使用应用到不同列的OR条件来求和和求平均值。单个的OR逻辑测试可能产生多个TRUE值。
图15:使用应用到不同列的OR条件来求最小值和最大值。单个的OR逻辑测试可能产生多个TRUE值。在AGGREGATE函数的公式中,使用除法剔除0值。
在公式中同时使用AND条件和OR条件:OR逻辑测试不会返回多个TRUE值
当在公式中同时使用AND条件和OR条件时,仍然取决于OR逻辑测试是否返回多个TRUE值。
如下图16所示,求区域West和Midwest在2019年3月18日和2019年5月12日之间的数量、营业额之和、最小营业额和平均营业额。
图16:AND和OR条件,此时OR逻辑测试指向单列。
在公式中同时使用AND条件和OR条件:OR逻辑测试会返回多个TRUE值
如下图17所示,求净资产大于100000,净收入大于等于37500,信用评级1大于等于3.5或信用评级2大于等于6的客户数、最大净资产和平均净资产。
图17:AND和OR条件,此时OR逻辑测试指向多列。
注:如果有多个OR条件,可以使用ISNUMBER函数和MATCH函数的组合。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。