前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >精通数组公式16:基于条件提取数据

精通数组公式16:基于条件提取数据

作者头像
fanjy
发布2021-03-12 16:51:12
4.3K0
发布2021-03-12 16:51:12
举报
文章被收录于专栏:完美Excel

excelperfect

在Excel中,基于AND或OR条件从数据集中提取数据是经常要做的事。可以使用下列方法来实现:

1.筛选

2.高级筛选

3.使用辅助列的非数组公式

4.使用SMALL函数和INDEX函数的数组公式

5.使用AGGREGATE函数和INDEX函数的数组公式

关于上述5种方法的要点如下:

1.筛选和高级筛选通常比公式更容易使用,但是不像公式能即时更新。

2.当单元格中的条件改变时,公式能够即时更新。

3.使用辅助列的非数组公式解决方案比数组公式计算速度更快。

4.数组公式可能使用许多单元格引用、包含许多计算,因此可能要更长的计算时间。要减小计算时间,考虑使用辅助列、布尔逻辑构造和有效的函数。

5.这里没有考虑使用VBA解决方案,有时使用它们是自动执行数据提取的好方法。

为何提取数据的公式如此复杂?

当从表中提取数据时,实际上是在执行查找。在Excel中,标准的查找函数例如INDEX、MATCH、VLOOKUP等都非常好,但当存在重复值时就比较困难了。如下图1所示,提取满足3个条件的数据记录,可以看出有2条记录满足条件。对于垂直表,从多列中提取数据的查找公式不会很难;查找公式难于在多行中使用。如果需要使用公式提取记录,那么有两个基本的方法:

1.基于辅助列使用标准的查找函数。辅助列包含提供顺序号的公式,只要公式找到了满足条件的记录。这些顺序号解决了重复值问题,因为对于每条匹配的记录都有唯一的标识号。辅助列作为查找列,供查找函数查找并提取数据。

2.基于全数据集的数组公式。这些公式是独立的,不需要额外的列辅助。对于这些公式,必须在公式内为与条件相匹配的记录创建一个相对位置数组。

图1:需要提取两条记录,标准的查找函数对于重复值有些困难。

使用辅助列来提取数据

假设有3个AND条件来决定要提取的记录,如下图2所示,可以在辅助列中使用AND函数。辅助列作为INDEX函数的查找列。单独使用AND函数的问题是获得了两个TRUE值,这意味着又回到了查找列中有重复项的问题。真正想要的是查找列包含数字,其中单元格E14中第一个TRUE是数字1,而E17中第二个TRUE是数字2。

图2:辅助列公式的第1部分涉及到AND函数

如下图3所示,将AND函数作为SUM函数的第1个参数,使用相对引用将公式所在单元格的上方单元格作为SUM函数的第2个参数。注意,SUM函数将逻辑值转换成1或0,并且忽略文本值。

图3:最终的辅助列公式使用SUM函数将AND函数的逻辑值与上方单元格中的值相加

单元格H6是一个辅助单元格。在该单元格中,输入公式:

=MAX(E8:E17)

得到匹配的记录的条数。

使用辅助单元格,可以帮助减小公式的计算时间。

如下图4所示,在单元格H12中输入公式:

=IF(G12>6,"",INDEX(A17,MATCH(G12,E8:E17,0)))

向左向下拖动复制。

图4:在单元格H12中输入的最终公式

当条件改变或者数据增加时,提取区域的数据会自动更新,如下图5所示。

图5:数据变化时,公式结果会自动更新

示例:使用辅助列,OR条件,VLOOKUP作为查找函数

如下图6所示,使用了OR条件的辅助列并且放置在第1列,因此可以使用VLOOKUP函数。注意,VLOOKUP公式中的参数col_index_num使用了COLUMNS函数,当公式向下复制时,其数值将依次递增为2、3、4、5,等等。

图6:使用辅助列,OR条件和VLOOKUP

注:当所有OR逻辑测试都指向同一列时,可以使用下列两种公式构造之一:ISNUMBER/MATCH函数,或者OR函数。而ISNUMBER/MATCH函数组合运算更快且对于多个条件更容易构造。

对于本示例,构造辅助列的公式:

=SUM(ISNUMBER(MATCH(D10,B3:B4,0)),A9)

或:

=SUM(OR(D10=B3,D10=B4),N9)

示例:使用辅助列,AND和OR条件,使用INDEX和MATCH函数仅提取部分列的数据

如下图7所示,使用AND和OR条件的辅助列,只从日期和商品数列中提取数据。

图7:AND和OR条件,双向查找从日期和商品数列中获取数据

未完待续>>>

注:本文为电子书《精通Excel数组公式(学习笔记版)》中的一部分内容节选。你可以到知识星球App的完美Excel社群下载这本电子书的完整中文版。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档