excel学习库

excel表格_excel函数公式大全_execl从入门到精通

VLOOKUP匹配多结果(1)-辅助列

问题

日常我们使用VLOOKUP函数一般做一对一的匹配,即每个查找值对应一个结果。如果查找结果不唯一,那么Excel默认会返回第一个结果。但是如果我想获取所有的结果该怎么操作?

原始数据

原始数据共两列:B列班级、C列姓名

预期结果

在单元格E2中输入任意班级名称,在F列能够显示该班级所有人员姓名

解决思路

将一对多转换成一对一,然后再用常规方式进行匹配

操作步骤

  1. 班级列左侧新建一列辅助列

  2. 在A2单元格输入公式=B2&COUNTIF($B$2:B2,B2)然后向下拖动

3. 在结果输出位置(F2单元格)输入如下公式 =IFERROR(VLOOKUP($E$2&ROW(A1),A:C,3,0),"")

4. 向下拖动F2单元格中的公式,即可得到所有匹配结果

公式解析

=B2&COUNTIF($B$2:B2,B2)

该公式主要目的是将一对多转换成一对一,即使班级能够和姓名一一对应。COUNTIF函数用于生成当前班级出现的次数。&符号用于连接班级名称和出现次数,这样就生成了班级名称的唯一值。

=IFERROR(VLOOKUP($E$2&ROW(A1),A:C,3,0),"")

ROW(A1)函数可以生成单元格的行号,向下拖动的时候可以用来构造连续的数列。$E$2&ROW(A1)班级和连续数列相结合可以构造出辅助列中的班级。

应用场景

该公式主要应用于自动化更新的报表,比如每天自动更新今天所有到期的客户。如果只是单次获取数据的话,那就完全没有必要设置公式了。

预告

该方法采用的是间接方式,优点在于容易理解,但是需要额外设置辅助列。下期将更新不需要辅助列就能够完成的方法。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接