精通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社群,进行技术交流和提问,获取更多电子资料。

(0)

相关推荐

  • 条件判断之if函数初体验

    从今天起,我们开始学习逻辑函数,主要包括if,iferror,and和or这4个函数.如果是高版本的话还有ifs和switch这2个函数. -01- 函数说明 函数功能和语法结构 if函数用来判断是否 ...

  • 精通Excel数组公式026:你弄清楚大型数组公式是怎么工作的吗?

    excelperfect 在本系列中,大部分内容都是在阐述特定数组公式如何工作的逻辑,但是假设你有一个大型的数组公式,却不知道它是如何工作的,你该怎么办?你已经学到了许多技术,弄清楚为什么一个公式正在 ...

  • 精通Excel数组公式025:LINEST数组函数

    excelperfect 如果正在进行与x-y直线数据集相关的统计计算,那么一定会喜欢LINEST函数.当使用最小二乘法将数据拟合到一条直线时,LINEST函数可以进行许多统计计算.下面列出了该函数可 ...

  • 精通Excel数组公式024:模拟运算表

    excelperfect 本文介绍模拟运算表功能,其使用TABLE函数创建一个结果数组.使用模拟运算表是一种对使用公式输入的公式进行假设分析的快速而简单的方法.该功能允许修改一个或两个公式输入,显示多 ...

  • 精通Excel数组公式022:提取唯一值列表并排序(续)

    使用公式对数字进行排序 下图12展示了两个对数字进行排序的公式.使用SMALL/ROWS函数从小到大排序,使用LARGE/ROWS函数从大到小排序. 图12 使用辅助列公式对基于数字列的记录进行排序 ...

  • 精通Excel数组公式021:提取唯一值列表并排序

    excelperfect 本文将综合使用前面系列中学习到的技术,包括布尔逻辑.动态单元格区域.提取满足条件的数据.统计唯一值等,创建出一个解决问题的大型公式.当然,如果你不需要自动动态更新数据,完全可 ...

  • 精通Excel数组公式020:MMULT数组函数

    excelperfect MMULT表示矩阵乘法(matrix multiplication).学习过前面文章的朋友,可能已经意识到乘法矩阵在Excel公式中有很多应用. 如下图1所示,两个不同队的棒 ...

  • 精通Excel数组公式018:FREQUENCY数组函数

    excelperfect FREQUENCY函数非常简单,但非常强大且功能丰富.本文介绍这个函数的基本用法,后续文章你将会看到该函数对困难的问题提供的令人惊叹的解决方案. FREQUENCY的基本用途 ...

  • 精通Excel数组公式019:FREQUENCY函数的威力

    excelperfect 在数据库中,表的第一列通常是称作为主键或唯一标识符的唯一值列表,用于验证为每个唯一标识符收集的数据是否位于一个且只有一个位置.在唯一值列表中没有重复值. 然而,在Excel中 ...

  • 精通Excel数组公式15:使用INDEX函数和OFFSET函数创建动态单元格区域(续)

    excelperfect 导语:本文为<精通Excel数组公式14:使用INDEX函数和OFFSET函数创建动态单元格区域>的后半部分. 将动态单元格区域公式定义为名称 创建动态单元格区域 ...