一次性查询出多条记录的Excel万能公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一次性查询出多条记录的Excel万能公式
不管是LOOKUP系列函数,还是INDEX+MATCH函数组合,一般的查询只能得到一条记录,但有时候我们需要查找出所有满足条件记录。

我们用INDEX+SMALL+ROW函数组合就可以完美解决这样的问题。

如下图所示,我们需要查询出所有的1班的学生,可以在F2单元格输入如下公式:
=IFERROR(INDEX($B$1:$B$7,SMALL(IF($A$1:$A$7=$E$2,RO W($A$1:$A$7)),ROW(A1))),'')
这是一个数组公式,因此要用CTRL+SHIFT+ENTER三键确定输入。

然后向下拖动复制至最后一行。

这个公式相当长了,可
能有朋友看到这儿就蒙了,这公式也太长了吧!其实,只需一步步分析公式运行的原理,它也没有那么难。

首先,公式①:IF($A$1:$A$7=$E$2,ROW($A$1:$A$7))的意思是将A1:A7的信息逐个与E2单元格比较,如果相等则返回对应行号。

我们选中这部分公式按F9键显示匹配结果为{FALSE;2;FALSE;4;FALSE;6;FALSE}。

然后,公式②:SMALL(IF(①,ROW(A1))使用SMALL函数返回第1最小值(ROW(A1)=1),公式下拉之后,回依次返回第2最小值、第3最小值......分别对应2、4、6三个值。

然后,公式③:INDEX($B$1:$B$7,②)返回B1:B7范围对应第2、4、6行数据。

最后,用IFERROR函数屏蔽查询中的错误值IFEEOR(③,''),因为在向下拖动复制的时候,查询完所有记录之后,下面就是错误值了,影响显示效果,因此用IFEEOR函数屏蔽错误,将其变为空白。

不知道按这样说大家是否能够理解?欢迎留言讨论!。

相关文档
最新文档