DC娱乐网

通过全称匹配简称,Vlookup不行,Filter公式秒杀

举个物流工作中的例子,左边是模拟的地址信息,里面的信息是不标准的并且没有规律的,现在需要快速匹配出来,具体的城市信息:前

举个物流工作中的例子,左边是模拟的地址信息,里面的信息是不标准的并且没有规律的,现在需要快速匹配出来,具体的城市信息:

前面的信息很长,需要匹配出来的结果是信息中的一部分,这就是典型的通过全称来匹配简称的问题,用Vlookup公式没法解决,今天分享两种方式解决这类问题,分老函数和新版本的函数

1、老版本:使用lookup公式

首先,我们要下载一份城市简称列表,这里是模糊的数据,我们只列出来部分城市列表

然后我们在C2单元格,输入的公式是:

=LOOKUP(1000,FIND($E$1:$E$6,B2),$E$1:$E$6)

然后向下填充就得到了我们想要的结果

这个公式的关键是第2参数,我们单独写出来

=FIND($E$1:$E$6,B2)

它会对所有的简称进行查找匹配,如果查找不到,就会返回错误值

然后使用lookup查找一个比较大的数值,1000,

这里是模糊查找,它会找到小于等于这个的最大数值,这里只有4,对应的就是南昌的结果

2、新版本Filter公式

如果我们的版本更新,有了Filter函数公式

那就可以直接使用公式:

=FILTER(E:.E,IFERROR(FIND(E:.E,B2),0))

对E列的结果进行筛选,筛选的条件是E列去查找匹配关键字

FIlter的第2参数,其实和上面的结果是一样的

只不过需要套用一个IFERROR公式,将上面的错误值变成0

然后FIlter公式,会筛选非0对应的值,那就可以得到我们想要的结果

3、拓展,匹配多个关键字

如果有一条全称数据,它是包含多个简称关键字的

需要把它们全部查找匹配出来

这种情况下,如果继续使用lookup公式它只能识别出更下方的一个简称了

多个简称满足,会得到更下方的结果

如果我们还是使用FIlter公式,它会把所有的结果查找出来,但是因为一个单元格放不下,因此会溢出单元格

只需要再外面再套用一个连接成文本的公式即可我们使用的公式是:

=ARRAYTOTEXT(FILTER(E:.E,IFERROR(FIND(E:.E,B2),0)))

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