举个工作中的例子,左边是各部门的员工信息,一个部门有多名员工姓名
需要根据部门信息,把所有的员工信息给匹配出来:
今天我们介绍两种方法来解决这个问题,分别是老版本的VLOOKUP和新版本的FILTER
1、老版本VLOOKUP公式如果我们直接使用VLOOKUP公式,它只会查找匹配出第一符合的信息:
=VLOOKUP(D2,A:B,2,0)
所以面对这种一对多匹配,如果不使用辅助列,我们需要使用的公式是:
=IFERROR(VLOOKUP($D2&COLUMN(A1),IF({1,0},$A$1:$A$100&COUNTIF(INDIRECT("A1:A"&ROW($1:$100)),$D2),$B$1:$B$100),2,0),"")
它的原理,其实就是构建了一个虚拟的辅助列,分别是每个部门出现的次数
如果学不会的话,可以保存公式,下次碰到直接套用
2、新版本FILTER新版本FILTER公式理解起来非常简单
它就是公式版的筛选
如果我们想要得到市场部的所有员工
我们没学习公式之前,我们都是对A列部门进行筛选,选择市场部这个值
然后对应B列的结果就是我们想要的:
而FILTER的公式使用逻辑也是这样
如果我们输入的公式是:
=FILTER(B:B,A:A="市场部")
它就是筛选出B列的结果,条件是A列里面的值是市场部
所以如果我们想匹配出市场部的信息,只需要将这个结果进行转置即可
在E2单元格中输入的公式是:
=TOROW(FILTER(B:B,A:A=D2))
它就得到了市场部的所有员工信息
最后,只需要将E2的公式向下填充,就得到了所有的结果:
对比VLOOKUP公式,非常简单好用,又容易理解
动手试试吧!