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、将公式下拉,就将所有“张三丰”对应的信息查询出来了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-25

“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)中的绝对引用符号。

第2个回答  推荐于2017-09-03

  VLOOKUP函数只能返回一个结果,如果想要一对多查询,可以使用其他函数,看下边例子,将部门为A的姓名列举到E列:

  一、一个单元格放一个名字:E2公式=IFERROR(INDEX(B:B,SMALL(IF(A:A=D$2,ROW(A:A)),ROW(A1))),""),数组公式,三键结束;

  二、将A部门的姓名放在E2单元格中,用逗号隔开:首先将数据按部门排序,然后在E2公式=MID(SUBSTITUTE(PHONETIC(OFFSET(A1,MATCH(D2,A2:A12,),,COUNTIF(A:A,D2),2)),D2,","),2,99),数组公式,三键结束。

第3个回答  2014-10-28
只能找到 对应的值 ,即一个值
多个结果的话,可以用VBA做个自定义函数,需要的话追问本回答被提问者和网友采纳
第4个回答  2020-10-21
相似回答