分享

返回多个查询结果,INDEX+SMALL+IF+ROW函数组合解析

 初风Excel教学 2022-03-19

走过路过不要错过

提到查询函数,很多人都会想到INDEX+MATCH函数、VLOOKUP函数、LOOKUP函数等。这些函数功能强大,适用于查找符合条件的唯一值。当符合查询条件的结果有多个时,这些函数就束手无策了。
当符合查询条件的结果有多个时,可以使用INDEX+SMALL+IF+ROW函数组合。今天我们就来讲解这个函数组合的具体使用方法。

1

单个条件查询

我们首先来看,当只设置一个查询条件时,INDEX+SMALL+IF+ROW函数组合的使用方法。明白单个查询条件的公式设置逻辑,当增加查询条件时,只需要在单个查询条件的公式基础上,增加逻辑判断公式即可。
如下图所示,A1:D11为员工信息表。要求查询“硕士”学历的所有员工信息。

在F4单元格输入公式:
=IFERROR(INDEX($A$2:$D$11,SMALL(IF($D$2:$D$11=$G$1,ROW($1:$10)),ROW(1:1)),COLUMN(A$1)),"")
按Ctrl+Shift+Enter结束公式输入。拖动填充柄向下、向右复制公式。

公式解析:
(1)$D$2:$D$11=$G$1:判断是否满足查询条件,即学历是否为“硕士”;
(2)IF($D$2:$D$11=$G$1,ROW($1:$10)):员工信息表中共有10行记录,返回符合条件的记录的行号(1~10);
(3)SMALL(IF($D$2:$D$11=$G$1,ROW($1:$10)),ROW(1:1)):返回符合条件的记录的行号的第1个最小值,也就是满足条件的第1个记录所在行号。当向下复制公式时,ROW(1:1)变为ROW(2:2),返回符合条件的第2个记录所在行号,以此类推。
(4)INDEX($A$2:$D$11,SMALL(IF($D$2:$D$11=$G$1,

ROW($1:$10)),ROW(1:1)),COLUMN(A$1)):返回A2:A11中第1个符合条件的记录第1列的值,即“小乔”。当向右复制公式时,COLUMN(A$1)变为COLUMN(B$1),返回第1个符合条件的记录第2列的值,即“女”。

(5)当所有符合条件的记录均已查询完毕时,INDEX+SMALL+IF+ROW函数会返回错误值。因此使用IFERROR函数屏蔽错误值,当返回错误值时,IFERROR控制错误值显示为空文本。


2

多个条件查询

如下图所示,要求查询“硕士”学历的“女”员工信息。

在F5单元格输入公式:
=IFERROR(INDEX($A$2:$D$11,SMALL(IF(($D$2:$D$11=$G$1)*($B$2:$B$11=$G$2),ROW($1:$10)),ROW(1:1)),COLUMN(A$1)),"")
按Ctrl+Shift+Enter结束公式输入。拖动填充柄向下、向右复制公式。
($D$2:$D$11=$G$1)*($B$2:$B$11=$G$2)用于判断是否同时满足学历为“本科”、性别为“女”两个条件。
与单条件查询相比,多条件公式的唯一区别是,在IF函数中增加是否符合多个条件的逻辑判断。


点个在看你最好看


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多