Excel VLOOKUP函数怎么查询一个值返回多个结果
材料/工具:Excel2007
1、在原始数据中A列有多个“张三丰”,需要提取每个“张三丰”对应的“工号”。
2、一般情况的VLOOKUP只能返回第一个值,如下:=VLOOKUP(A8,A1:D5,2,0)
3、在【姓名】列前插入一列输入公式:=COUNTIF(B$2:B2,B2)
4、将A2公式改成:=B2&COUNTIF(B$2:B2,B2)这样就将B列的“姓名”和出现次数连在一起。
5、在B8输入公式:=A8&ROW(A1)将A8值和ROW(A1)返回的1连在一起,下拉ROW(A1)会变成ROW(A2)返回2。
6、将B8的公式修改成如下:=VLOOKUP(A$8&ROW(A1),A$1:E$5,3,0)也就是在A1:E5范围内查询“张三丰”和出现次数的文本对应第3列的【工号】。
7、将公式下拉,就将所有“张三丰”对应的信息查询出来了。
“VLOOKUP函数查询一个值返回多个结果”的操作步骤是:
1、打开Excel工作表;
2、由题意可知,A列存在着多个相同的项目,而VLOOKUP函数通常只返回精确匹配到的首个条件,并返回对应的数据,而无法返回多个相同条件所对应的数据;这就需要通过辅助列的形式,将多个相同的条件按出现的先后编号,并被后面的查找条件所引用;
3、在A列插入一列辅助列,在A2单元格输入以下公式,然后向下填充公式
=B2&COUNTIF(B$2:B2,B2)
公式表示:在B2单元格内容后连接其出现的次序编号
4、在F2单元格输入以下公式,然后向下填充公式
=IFERROR(VLOOKUP(E$2&ROW(A1),A:C,3,0),"")
公式表示:在查找条件E2单元格后连接行号ROW(A1),以此作为查找条件,与辅助列中的对应单元格内容进行精确匹配,并返回对应第3列(C列)的数据;多余行号不再能匹配数据时,返回空。
5、根据需要,隐藏A列辅助列,实现美观效果;
6、通过建立辅助列的方式,可以不使用INDEX+SMALL+IF数组公式,就可实现数据筛选,但需要注意次序编号公式COUNTIF(B$2:B2,B2)中的绝对引用符号。
多个结果的话,可以用VBA做个自定义函数,需要的话追问