摘要:如果我们直接使用Vlookup公式,它得到的结果,只会是第1次出现的结果:
左边是公司的业务服务范围,省份和城市,它是两列展示的
现在我们需要快速查找匹配出省份对应的城市有哪些
因为一个省份,会有多个城市的对应,
如果我们直接使用Vlookup公式,它得到的结果,只会是第1次出现的结果:
=VLOOKUP(E2,A:B,2,0)
小编分享3种方法可以快速的进行一对多的提取
Filter公式的出现,彻底简化了各种一对比查找匹配的问题
它的用法是:=Filter(筛选的条件,包含的条件)
这里的话,我们包含的条件是,在A列里面, 查找E2 单元格的值,返回对应B列的结果
所以可以输入的公式是:
=FILTER(B:B,A:A=E2)
因为它筛选出来4条结果,这个公式也会得到4行结果,会自动溢出到下方的单元格
然后我们只需要将它们拼接起来就可以,使用textjoin公式可以对数据进行拼接
所以,我们使用的公式是:
=TEXTJOIN(",",TRUE,FILTER(B:B,A:A=E2))
第一参数表示拼接字符,这里用的逗号
第二参数填True,表示忽略空白单元格
第三参数,就是需要连接的单元格
向下填充,就得到了所有的结果:
我们输入的公式是:
=TEXTJOIN(",",TRUE,IF(A:A=E2,B:B,""))
首先用If函数判断,它是否等于A列的值,如果等于的话,就返回对应B列的结果,否则返回空白
然后Textjoin的第2参数,True,它可以忽略空白值,进行拼接
得到了所有的结果
假如你对Vlookup仍然保持有情怀,想用它来进行查找匹配
那我们可以搭配Groupby公式来实现
我们输入的公式是:
=VLOOKUP(E2,GROUPBY(A2:A13,B2:B13,ARRAYTOTEXT),2,0)
第1参数查找值E2单元格
第2参数是用Groupby公式构建的一个数据源
第3参数,是查找第2列
第4参数0表示精确查找
所以最难理解的是第2参数构成的数据源,它是一个分组计算的公式
我们单独输入这个公式,看它得到的结果:
=GROUPBY(A2:A13,B2:B13,ARRAYTOTEXT)
它就是对A列进行分组
用B列的数据进行计算
计算的方式是ARRAYTOTEXT,这种计算方式就是用逗号拼接文本
得到了一个类似数据透视表的数据源,我们用Vlookup引用这个数据源,就能查找到结果
关于这个小技巧,你学会了么?动手试试吧!
来源:Excel自学成才一点号