Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Excel公式练习43: 统计满足多个条件的条目数量

Excel公式练习43: 统计满足多个条件的条目数量

作者头像
fanjy
发布于 2020-02-29 08:42:40
发布于 2020-02-29 08:42:40
2.8K0
举报
文章被收录于专栏:完美Excel完美Excel

导语:继续研究来自于excelxor.com的案例。这个案例与之前相比并不复杂,但要求公式最简。

本次的练习是:如下图1所示,左边的表格是一个测试表,学生要根据单元格A3:A12中的国家名,在列B和列C相应的单元格中填写该国家的首都和使用的货币。右边的表格是正确答案。

图1

要求在单元格C1中输入一个公式,计算学生答对的数量。在图1所示的示例中,答案是4,也就是说左边的表格中有四行是正确的,如表中高亮显示的行。

公式要求:

1. 尽可能简短,即公式不仅要能够得到正确的答案,而且字符数尽可能少。

2. 引用的单元格区域必须同时包含行和列,不允许只出现行或列(例如3:12、A:C)。

3. 不允许使用名称。

先不看答案,自已动手试一试。

公式

下面是两个解决方案,去掉等号后都是56个字符。

公式1:

=COUNT(MATCH(A3:A12&B3:B12&C3:C12,E3:E12&F3:F12&G3:G12,))

公式2:

=SUM(COUNTIFS(A3:A12,E3:E12,B3:B12,F3:F12,C3:C12,G3:G12))

这两个公式中,公式2更好些。因为公式1理论上有可能出错,例如,如果表中同时存在France-Paris-Euro和Franc-Eparise-Uro(不存在该名字的国家、城市或货币),则会得出不正确的结果。然而,发生这种可能性的机率应该非常小,但为确保万无一失,可以使用下面的公式:

=COUNT(MATCH(A3:A12&"|"&B3:B12&"|"&C3:C12,E3:E12&"|"&F3:F12&"|"&G3:G12,))

即在公式1中添加合适的分隔符。

公式解析

先看看公式1:

=COUNT(MATCH(A3:A12&B3:B12&C3:C12,E3:E12&F3:F12&G3:G12,))

这是一个简单而优雅的解决方案,是很好的公式技巧之一,提供了一种获取所需数量的方法,而不需要使用诸如VLOOKUP或INDEX/MATCH函数组合。

公式首先分别连接两个表中同一行的字符串,在十个字符串中执行一系列的匹配查找。因此,公式1可转换为:

=COUNT(MATCH({"FranceParisManat";"SerbiaBelgradeDinar";"LithuaniaVilniusZłoty";"HungaryBudapestForint";"AndorraChisinauManat";"UkraineSofiaHryvnia";"ArmeniaYerevanDram";"RomaniaRomeLeu";"BulgariaSofiaLev";"CroatiaBerlinLira"},{"AndorraAndorra laVellaEuro";"ArmeniaYerevanDram";"BulgariaSofiaLev";"CroatiaZagrebKuna";"FranceParisEuro";"HungaryBudapestForint";"LithuaniaVilniusLitas";"RomaniaBucharestLeu";"SerbiaBelgradeDinar";"UkraineKievHryvnia"},))

这里,省略了MATCH函数的参数match_type,Excel默认为精确匹配即等效于该参数指定为0,这样公式1转换为:

=COUNT({#N/A;9;#N/A;6;#N/A;#N/A;2;#N/A;3;#N/A})

COUNT函数忽略传递给它的参数中的错误值,因此,公式1的结果为:

4

再看看更为健壮的公式2:

=SUM(COUNTIFS(A3:A12,E3:E12,B3:B12,F3:F12,C3:C12,G3:G12))

注意,当参数criteria指定的值包含多个元素时,在合理地强制转换(例如作用在COUNTIFS上的外部函数和数组公式CSE输入)后,Excel将分别计算数组里的每个元素。

进一步说,这里有多个参数criteria指定的值都由多个元素(E3:E12、F3:F12、G3:G12)组成,Excel执行一系列单独的COUNTIFS计算。换句话说,公式2中的COUNTIFS表达式等同于执行以下十个单独的计算中的每一个:

=COUNTIFS(A3:A12,E3,B3:B12,F3,C3:C12,G3)

=COUNTIFS(A3:A12,E4,B3:B12,F4,C3:C12,G4)

=COUNTIFS(A3:A12,E5,B3:B12,F5,C3:C12,G5)

=COUNTIFS(A3:A12,E12,B3:B12,F12,C3:C12,G12)

然后汇总结果。

以这种方式,不难理解为什么这种构造能够为我们提供想要的结果,因为上述公式显然分别等于:0(测试表中A列为“Andorra”且B列中对应的条目为“Andorra la Vella”且C列中的对应条目为“Euro”的行数),1(A列=“Armenia”,B列=“Yerevan”且C列为“Dram”的行数),1(A列=“Bulgaria”,B列=“Sofia”,C列=“Lev”的行数)等。这样,公式2转换为:

=SUM({0;1;1;0;0;1;0;0;1;0})

结果为:

4

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Excel公式练习46: 获取最大年增长率对应的值
导语:继续研究来自于excelxor.com的案例。这个案例不是很复杂,但解决方案却很巧妙。
fanjy
2020/03/12
1.3K0
精通Excel数组公式005:比较数组运算及使用一个或多个条件的聚合计算
在诸如基于条件查找最小值或最大值、计算标准偏差等情形时,Excel没有提供相应的内置函数,必须编写数组公式,其中往往涉及到在数组中使用比较运算符。
fanjy
2020/06/24
8.6K0
看完这篇Excel数组简介,你也是Excel高手了!
有这么一种情况,相信有很多小伙伴们都有遇到:需要比较两个工作表或两个工作簿微妙的改动之处,该如何快速且便捷地找出不同之处?
数据STUDIO
2021/06/24
1.5K0
Excel公式练习91:计算条件累积和
引言:本文的练习整理自chandoo.org。多一些练习,想想自己怎么解决问题,看看别人又是怎解决的,能够快速提高Excel公式编写水平。
fanjy
2021/08/31
1.8K0
Excel公式练习91:计算条件累积和
数据有效性+条件格式,升级这个有想象力的输入界面
在《数据有效性+条件格式,创建有想象力的输入界面》中,我们构建了如下图1所示的Excel工作表界面,使输入数据在用户面前能够清晰地展示。
fanjy
2021/12/08
1.9K0
数据有效性+条件格式,升级这个有想象力的输入界面
电梯能运行吗?——简单的问题引发的Excel公式探讨
当今社会,电梯已经成了建筑物的必备之物。通常,当进入电梯的人员重量之和超过设定的重量时,电梯会报警并且停止运行。
fanjy
2021/10/27
9410
电梯能运行吗?——简单的问题引发的Excel公式探讨
Excel公式练习38: 求一列中的数字剔除掉另一列中的数字后剩下的数字
导语:继续研究来自于excelxor.com的案例。这个案例看似简单,然而实现起来却比较难,这里面用到的技巧值得学习。
fanjy
2020/02/26
3.9K0
python吊打Excel?屁!那是你不会用!
相信大家总能在朋友圈刷到下图这种教育广告,python很强,但总是这么贬低Excel就没必要了吧。
朱小五
2020/05/19
3.8K0
python吊打Excel?屁!那是你不会用!
Excel图表学习74:制作动态排序的条形图
条形图不仅有助于说明一个或多个数据系列中值的大小,而且还可以很好地替代饼图,饼图比较了一组数据中一个系列的比例。
fanjy
2021/07/30
3K0
excel 的条件格式(一)
5.点击确定,便得到了如下结果,excel 对值大于 60 的单元格进行了突出显示。
mr.songw
2021/02/03
3.8K0
excel 的条件格式(一)
Excel公式技巧67:按条件将数据分组标识
如下图1所示的工作表,我们想使用数字将数据分成几组,其标准是:第1次出现笔记本且在区域A至第2次出现笔记本且在区域A之间的数据为第1组,标识为1;第2次出现笔记本且在区域A至第3次出现笔记本且在区域A之间的数据为第2组,标识为2,依此类推。
fanjy
2020/12/08
3.8K0
Excel公式技巧67:按条件将数据分组标识
Excel公式技巧68:查找并获取所有匹配的值
在《Excel公式技巧67:按条件将数据分组标识》中,我们根据指定的条件采用数字标识将数据进行了分组。利用这列分组数据,我们能方便地查找并获取所有匹配的值。
fanjy
2020/12/08
11.4K0
Excel公式技巧68:查找并获取所有匹配的值
问与答81: 如何求一组数据中满足多个条件的最大值?
Q:在工作表中有一些数据,如下图1所示,我想要获取“参数3”等于“A”、”参数4“等于”C1“对应的”参数5”中的最大值,能够使用公式解决吗?
fanjy
2020/04/20
4.4K0
一起学Excel专业开发08:工作表的程序行和程序列
我们经常会看到一些工作表,含有隐藏的行或列。而这些隐藏行或列中,往往存储着一些不想让用户看到的数据。这些数据可以让Excel或者VBA程序使用,方便完成一些高级操作,例如检查用户输入是否存在错误、存储数据有效性列表项、计算的中间值、特殊的常量,等等。
fanjy
2019/08/27
1.5K0
一起学Excel专业开发08:工作表的程序行和程序列
Excel实战技巧:如何使用Excel数据表创建蒙特卡罗模型和预测
引言:本文学习整理自exceluser.com,非常好的一篇文章,特分享于此,供有兴趣的朋友参考。
fanjy
2023/02/14
5.1K0
Excel实战技巧:如何使用Excel数据表创建蒙特卡罗模型和预测
Excel公式技巧24: Excel公式中的降维技术
看过前面一系列文章的朋友,一定会熟悉“重新定义数组维度”的概念。这是一项非常有用且非常重要的技术,使我们可以接受二维数组并将其转换为一维数组,同时将元素保留在该数组中。
fanjy
2020/03/25
2.3K0
Excel公式技巧24: Excel公式中的降维技术
精通数组公式17:基于条件提取数据(续)
创建数据提取数组公式的技巧是在公式内部创建一个“匹配记录”相对位置的数组。如下图8所示,可以看到与条件相匹配的记录的相对位置是7和10,它们将作为INDEX的row_num参数的值。
fanjy
2021/03/12
3.5K0
Excel公式练习79: 多个OR条件计数
本次的练习是:在Excel中,我们经常要基于多个OR条件进行计数或求和。如下图1所示,我们想要获取左侧数据中:“项目”是“T恤衫”或“连帽衫”,“颜色”是“红色”、“蓝色”或“绿色”,“城市”是“北京”或“上海”的数量。
fanjy
2020/12/08
2.4K0
Excel公式练习79: 多个OR条件计数
零代码编程:用ChatGPT合并多个表格中的内容到一个excel中
用ChatGPT+Python,很快就可以搞定。在ChatGPT中选中GPT4,输入如下提示词:
AIGC部落
2024/06/24
2530
零代码编程:用ChatGPT合并多个表格中的内容到一个excel中
这款国产报表工具,是真的太好用了
工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的 但不同的工具,开发方式不同,效率自然也分高下。效率高的,不仅做起来简单方便,还能给项目上节省很多成本;效率低的,开发起来费事费力,不仅工程师受不了,常年累月无形中浪费掉的人工成本,企业也受不了 那怎么才能选一个开发效率高的呢?开发效率应该怎么考察呢? 很多人在考察报表工具时,会关注工具是不是有流畅的可视化操作界面(厂家也喜欢宣传这一点,零编
Java3y
2022/04/06
5990
这款国产报表工具,是真的太好用了
推荐阅读
相关推荐
Excel公式练习46: 获取最大年增长率对应的值
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档