COUNTIFS函数处理数组
发布时间:2023-06-29 15:09:14
COUNTIFS函数处理数组?这篇文章将详细讲解COUNTIFS/SUMIFS函数的运行原理,特别是将包含多个作为条件的元素的数组传递给一个或多个Criteria_Range参数时。
先看一个示例,如下图1所示的数据。
图1
现在,想要得到Sex为“Male”,Pet为“Sea lion”的数量,使用公式:
=COUNTIFS(B2:B14,”Male”,C2:C14,”Sea lion”)
而想要得到Sex为“Female”,Pet为“Sea lion”的数量,可使用公式:
=COUNTIFS(B2:B14,”Female”,C2:C14,”Sea lion”)
那么,想要得到Sex为“Male”或“Female”,Pet为“Sea lion”的数量,可简单地将上述两个公式相加:
=COUNTIFS(B2:B14,”Male”,C2:C14,”Sealion”)+COUNTIFS(B2:B14,”Female”,C2:C14,”Sea lion”)
此时,我们可能会想到,使用数组作为参数来简化上面的公式:
=SUM(COUNTIFS(B2:B14,{“Male”,”Female”},C2:C14,”Sealion”))
这将得到同样的结果5。
下面,我们再添加一个OR条件:
=SUM(COUNTIFS(B2:B14,{“Male”,”Female”},C2:C14,{“Sealion”,”Mite”}))
结果为2。本来我们预测的结果应该是7,可实际比上一个公式得到的结果5还要少。其实,这个公式返回的结果是:列B中是“Male”且列C中是“Sea lion”或者列B中是“Female”且列C中是“Mite”的数量。从图1所示的表中可以看到,仅第12行和第14行满足条件。
对于这个公式,要注意的重要一点是:两个常量数组中的每个元素彼此对应,“Male”和“Sea lion”以及“Female”和“Mite”。该公式并未考虑B列中的“Male”和C列中的“Mite”是可选项,也未考虑B列中的“Female”和C列中的“Sea lion”。
但是,如果我们想考虑这些交叉选项,那么怎样才能统计所有可能对应的条件?列B中是“Male”或“Female”而列C中是“Sea lion”或“Mite”,得出满足条件的数量为7的结果。
此时,只需要对上一个公式做个小小改变:
=SUM(COUNTIFS(B2:B14,{“Male”,”Female”},C2:C14,{“Sealion”;”Mite”}))
或者:
=SUM(COUNTIFS(B2:B14,{“Male”;”Female”},C2:C14,{“Sealion”,”Mite”}))
只是将其中一个常量数组中的逗号改为分号。
这里,一个常量数组是单列数组,另一个是单行数组,这使得Excel返回一个由这两列数组的所有可能组合组成的一个二维数组,等同于下图2所示。
图2
然后,对这四种情形所得到的结果求和。
下面,我们再来扩展一下,公式:
=SUM(COUNTIFS(B2:B14,{“Male”,”Female”},C2:C14,{“Sealion”;”Mite”},D2:D14,{“Basketball”}))
计算列B中是“Male”或“Female”、列C中是“Sea lion”或“Mite”且列D中是“Basketball”的数量,结果为1。
现在,如果我们试图给列D再添加一个条件,看看会发生什么。公式:
=SUM(COUNTIFS(B2:B14,{“Male”,”Female”},C2:C14,{“Sealion”;”Mite”},D2:D14,{“Basketball”,”Genealogy”,”Roleplaying”}))
可能想要返回下图3所示的5行:
图3
然而,上述公式的结果为2。
是语法错误吗?那么试试:
=SUM(COUNTIFS(B4:B16,{“Male”,”Female”},C4:C16,{“Sealion”;”Mite”},D4:D16,{“Basketball”;”Genealogy”;”Roleplaying”}))
返回的结果是0。
这到底是怎么回事?
让我们看看前面的这个公式:
=SUM(COUNTIFS(B2:B14,{“Male”,”Female”},C2:C14,{“Sealion”;”Mite”},D2:D14,{“Basketball”,”Genealogy”,”Roleplaying”}))
将会转换为:
=SUM({0,1,0;1,0,0})
其中间结果为一个由2行3列组成的数组。这个数组是怎么来的?
这里的关键是之前提到的元素“配对”。当两个(或多个)数组具有相同的“向量类型”(即要么都是单列数组,要么都是单行数组)时,Excel将对每个数组中相对应条件进行配对。因此,在上面的公式中第一个数组{“Male”,”Female”}和第三个数组{“Basketball”,”Genealogy”,”Roleplaying”}都是单行数组,Excel将配对这些元素:第一个是有多少是列B中为“Male”并且列D中是“Basketball”,第二个是有多少是列B中为“Female”并且列D中是“Genealogy”。
注意到还有另一个数组{“Sea lion”;”Mite”},那是一个单列数组,这将会让我们能够构造一个二维数组。
并且,第三个数组中的第三个元素“Roleplaying”在第一个数组中并没有相配对的元素。
然而,Excel会继续构建适当大小的数组以容纳预期的返回值,即上面看到的2行3列的数组。实际上,对于两个(或更多个)不同维度的数组,Excel解决冲突的方法是人为地增加两个中的较小者,以便使其尺寸等于这些数组中的较大者。
它是使用零填充这些新创建的多余空间,然后根据需要对结果数组进行操作。下面,可以给出一个与上面中间结果{0,1,0;1,0,0}的等效表达式,其分解起来如下图4所示。
图4
可以看出,先将三个数组中相同向量类型配对,然后与第三个数组交叉计算得到结果。
再看看前面想得到结果的第二个公式:
=SUM(COUNTIFS(B4:B16,{“Male”,”Female”},C4:C16,{“Sealion”;”Mite”},D4:D16,{“Basketball”;”Genealogy”;”Roleplaying”}))
我们可以预料到中间结果是:
=SUM({0,0;0,0;0,0})
这次是3行2列数组,由6个元素组成。此时,相同向量类型的数组分别是第二个数组{“Sea lion”;”Mite”}和第三个数组{“Basketball”;”Genealogy”;”Roleplaying”},因此配对如下:”Sea lion”/” Basketball”、”Mite”/”Genealogy”、”???”/”Roleplaying”。
这三组数据和第一个数组{“Male”,”Female”}交叉运算的结果如下图5所示。
图5
小结
尽管本文的主要目的是讨论SUMIFS/COUNTIFS函数系列的操作和语法,但学习到的更重要的方面是对基本方法更深刻的理解之一是通过这种结构来计算。
有许多的Exceller,其工作清楚地表明了他们对标准公式技术的理解:使用FREQUENCY非常容易;编写出长而复杂的数组公式;会记住经过实践检验的成熟的解决方案;善于在各种情况下使用绝大多数Excel函数。
但是你不会看到来自同一个人的许多MMULT,而且也不会看到许多非标准的、创新的数组操作(在MMULT之后,也许TRANSPOSE居于最少使用和了解最少的函数的之首)。但是,这两个函数从本质上讲具有相同的基本方面,也就是说,它们辅助我们处理要操纵的二维数组。不是像工作表单元格区域那样的那些可见的东西,而是那些仅位于Excel中间计算链深度之内并且是临时的东西。


猜你喜欢
- 电脑开机的时候声音图标没显示不能调节声音噶怎么办呢?不过很多用户可能会遇到这样的情况,有时候发现电脑中的音量图标不见了,造成无法调节音量,从
- 在excel表格的使用中,难免会有一些意外发生,比如excel打不开了,遇到这种情况很多人都会手足无措,别慌下面随小编一起看看解决方法吧。e
- excel数字转日期?怎样将excel表格中的数字转换成日期的格式?在Excel2013中,每个单元格中的数据可以有多种格式,如文本、数字、
- 驱动人生是一款非常好用的电脑驱动检测、更新、安装的软件了,但是很多用户们在使用驱动人生这款软件的时候,会遇到很多的问题,那么驱动人生在使用时
- 如果要离开电脑怕别人误关机该怎么办呢?本文讲给大家介绍如何设置Win10系统使其无法关机。解决方法:方法一、使用组策略限制关机操作1、执行
- 以前一直用MathType6.0配合word编辑数学公式,利用mathtype的快捷键基本上可不用鼠标,很方便。word2007出来后我就用
- 众多网友反馈微软小娜全平台出现无法连接网络,兴趣不能使用的问题,包括Windows10PC、Win10Mobile、WP8.1、安卓平台均无
- PPT怎么制作晶莹剔透的雪花?ppt中想要制作一个晶莹剔透的雪花,该怎么制作漂亮的雪花呢?下面我们就来看看ppt画雪花的技巧,需要的朋友可以
- Word文字怎么旋转?今天给大家分享文字旋转的技巧,希望可以帮助到大家。1、文字旋转90度点击文本框后,点击格式-排列-旋转-向右旋转90度
- 我们经常在Word 中无法调整表格行高,那么,当表格无法调整行高时,我们如何操作呢?今天小编就教各位Word 表格无法调整行高的小技巧,大家
- 英雄联盟是一款影响力和人气都非常高的游戏很多的用户都喜欢玩,很多玩家在启动的时候经常遇到找不到文件launcher.exe的情况,下面就为大
- 下面为大家分享excel减法函数的用法1、打开excel表格2、在C2单元格内输入=(,然后鼠标选中A2单元格,再在C2单元格输入-,用鼠标
- Excel中经常用到三次方符号,具体该如何输入三次方符号呢?下面是由小编分享的excel中输入三次方符号的方法,以供大家阅读和学习。exce
- 即使进行完美的优化,但是在电脑使用过程中还是难免会遇到一些问题,最近就有用户反映说在使用Win10系统时,Win10专业版提示软件不兼容的情
- 驱动人生ahci驱动更新,只要打开此电脑设备管理器找到SATA AHCI控制器就可以更新啦,如果嫌麻烦可以使用驱动人生一键更新ahci驱动哦
- 在Win10系统中拥有一个管理员账号,这个账号可以帮助我们来开启管理员权限, 不过还是有小伙伴想要删除管理员账号去不知道怎么操作,那么要在遇
- 在PPT的标题文字上使用荧光效果,是很能够吸引人眼球的,特别是在上图这样黑色背景衬托下,白色的文字被色彩斑斓的彩光所包围,一种慵懒陶醉的情调
- 图吧工具箱是一款功能强大的硬件检测工具,而且内存品牌是一个非常重要的内存信息,因此很多小伙伴都比较好奇图吧工具箱是否能够查看所使用电脑的内存
- 两列或多列数据合并第一种方法:用最简单的公式,最快搞定合并。以下面图表为例,公式 =A2&B2&C2然后下拉填充就可以辣~&
- 终于下定决心,把mac升级成最新的大苏尔系统,可是升级之后,问题来了,在菜单栏找不到WiFi图标,怎么办?别着急,解决方法在这里!1、如图,