网站首页 > 技术文章 正文
Hello,大家好!今天和大家分享,如何使用函数返回符合查询条件的多个查询结果。
提到查询函数,很多人都会想到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函数中增加是否符合多个条件的逻辑判断。
猜你喜欢
- 2025-03-11 Excel数据查找匹配再添新成员:TEXTJOIN+IF
- 2025-03-11 Excel进阶神器!IF函数高阶用法全解析,打工达人必备!
- 2025-03-11 最常用函数IF多种应用解密
- 2025-03-11 Cursor使用指南:释放AI编程的无限潜能
- 2025-03-11 web前端tips:使用 forEach 循环中的 return 语句会发生什么?
- 2025-03-11 Excel技巧:关于IF函数的典型用法(一)
- 2025-03-11 办公必备的多条件统计函数公式,直接套用,请收好备用
- 2025-03-11 Excel神器IF函数用法大全,打工人效率翻倍全靠它!
- 2025-03-11 当你与这几个函数公式成功牵手后,就会发现,原来Excel也很有趣
- 2025-03-11 Excel函数if多个条件并列怎么输入?来看看并列条件的公式分解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)