VLOOKUP一对多查询,还不会吗?其实很简单!

你好,我是刘卓。欢迎来到我的公号,excel函数解析。一对多查询是很多小伙伴在工作中经常遇到的问题,对于初学函数的同学来说,复杂的数组公式难以理解,不太友好。我们可以通过辅助列的方法,利用vlookup函数轻松实现一对多查询。下面就来分享下这种用法:
-01-

利用数据验证选择条件查询

表格结构不同,查询结果显示的方式就会不同,相应地函数公式也会不同。先来看第一种,利用数据验证选择某个条件来显示相应的结果。如下图所示,根据F3的学历查询出所有的姓名。

1)在A列添加辅助列,A3单元输入公式=COUNTIF(D$3:D3,F$3)或者=(D3=F$3)+N(A2),二者结果一样,向下填充,得到A列的结果。从结果中可以看到,当F3的学历在D列中第1次出现时对应的数字为1;第2次出现时对应的数字为2;以此类推……
2)在G3单元格输入公式=IFNA(VLOOKUP(ROW(A1),A$3:B$14,2,0),""),向下填充,完成。
vlookup第1参数为row(a1), 也就是1,公式的意思是在A3:B14中查找首次出现的1,并返回第2列相应的姓名"李凯凯";当公式下拉时,row(a1)变为row(a2),也就是2,此时查找首次出现的2,并返回相应的姓名"程昊";以此类推……
当公式下拉过多时,会产生错误值#N/A,最后用ifna将错误值#N/A变成空文本""。

-02-

将每个条件列出来一一查询

第二种表格结构是将每个条件列出来,分别显示相应的多个结果。如下图所示,将所有的学历列出来,显示查询出的多个姓名。

1)在A列添加辅助列,A21单元格输入公式=D21&COUNTIF(D$21:D21,D21),向下填充。利用countif动态扩展区域的方式统计出D列每个学历是第几次出现,然后再用学历连接相应的次数。

从A列的结果中可以看到,“本科”第1次出现时就变为“本科1”,第2次出现时就变为“本科2”,以此类推……其他学历也是一样,这样就给每个学历做了个编号。
2)在G21单元格输入公式=IFNA(VLOOKUP($F21&COLUMN(A1),$A$21:$B$32,2,0),""),向右向下填充,完成。

vlookup第1参数为F21&column(a1),也就是"本科1",公式的意思就是在A21:B32中查找"本科1",并返回第2列相应的姓名"沈君燕";当公式向右填充的时候column(a1)变为column(b1),第1参数就返回"本科2",也就是查找"本科"学历的第2个人的姓名。

公式向下填充的时候,相应的查找"初中1","初中2","初中3","初中4","大专1","大专2","大专3","大专4",……对应的姓名,查找不到的就返回错误值#N/A,最后用ifna将错误值#N/A变成空文本""。

文件链接:

https://pan.baidu.com/s/12O5TT3IO6xnEe4VpF7aXMA

提取码:kejb
(0)

相关推荐