举个工作中的实例:

左边的原始表格是部门,工号,姓名,及工资数据

右边需要根据部门条件,把所有员工姓名给提取出来

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

因为一个部门会有多名员工能匹配到,遇到这种一对多查询匹配问题

今天介绍4种方法快速解决,前2种方法不限版本,后2种方法需要新版公式支持

1、使用VLOOKUP 辅助列

首先,需要在数据源的最左侧,插入一个辅助列

输入的公式是:

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

注意第一个B2需要按F4键,固定引用

通过累计区间计数公式,把部门列,根据出现的次数,分别添加了一个顺序号在最左边

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

然后我们匹配的时候,只需要输入公式:

=IFERROR(VLOOKUP(COLUMN(A1)&$G2,$A:$D,4,0),"")

VLOOKUP的4个参数解读

G2单元格固定列标

A:D列数据固定

查找第4列的结果

0表示精确查找

再结合IFERROR,出错的时候,返回空白值,就可以一次性的匹配出来了

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

2、万金油INDEX SMALL IF公式:

如果不允许插入辅助列的情况下,可以使用万金油公式:

=INDEX($C:$C,SMALL(IF($A$2:$A$30=$F2,ROW($2:$30),10000),COLUMN(A1)))&""

看起来公式复杂

它的逻辑很简单:

首先使用IF判断A列是否等于我们需要查找的值,如果是,返回对应行号,否则返回一个特别大的数字

再使用SMALL将行号从小到大提取出来

使用INDEX获取对应行号的结果

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

3、TOROW FILTER公式

需要升级到最新版本,低版本不支持这个函数公式

它的用法很简单,我们只需要输入的公式是:

=TOROW(FILTER(C:C,A:A=F2))

FILTER公式用来筛选C列结果,条件是A列里面是F2的值

TOROW公式是将竖向排列的数据,转成横向展示

就可以轻松得到了结果

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

4、TOROW IF公式

我们使用的公式是:

=TOROW(IF(A:A=F2,C:C,小h),3)

也可以轻松得到结果

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

计算过程如下,首先是IF公式

=IF(A:A=F2,C:C,小h)

如果A列的值,是我们需要查找的市场部,就返回C列的结果,否则就计算小h

因为Excel里面并没有小h这个公式,所以会显示错误值#NAME?

所以这里小h可以换成任意非公式文本,甚至可以写成你的名字

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

TOROW是可以将竖向数据转换成横向的,第2参数,输入的是数字3,表示忽略错误值进行计算,所以可以得到我们想要的结果

excel一对多查询并提取数据,excel一对多匹配的4种方法-趣帮office教程网

关于这个小技巧,你学会了么?动手试试吧!