模糊查找,不是近似查找!在Excel中应该如何进行模糊匹配
前两天,发了一篇文章,介绍了一个微软收集用户反馈的网站,如果你希望Excel中有什么功能,可以到这个网站上提交建议,或者给别人的建议投票,文章内容见这里:
有一位同学留言说想要“模糊查找的功能”,我回复说微软其实已经做了。今天就给大家介绍一下微软是如何在Excel中实现模糊查找的。
01
我们知道,在Excel中进行查找一般使用VLOOKUP函数,也可以使用LOOKUP函数,如果只想知道查找值在查找区域中的位置,可以使用MATCH函数,
这些函数提供两种方式的匹配方式:精确匹配和近似匹配。(LOOKUP函数只提供近似匹配的方式)。
很多人误认为近似匹配就是模糊匹配,其实不然。近似匹配只是在一个排序的区域里找到所有比查找值小的里面的最大值,并不是真正的近似匹配。
另外,这些函数还提供一种通配符匹配,例如,可以使用公式:
=VLOOKUP("张*",查找区域,2,0)
来在查找区域的第一列中匹配第一个姓张的员工,但是这也不是真正的模糊匹配。
真正的模糊匹配是类似于下面描述的场景。首先,我们有一个待查找的数据或区域,还有一个用于存放所需信息的表格区域:
要想根据第一个表(左边的表)在第二个表(右边的表)中找到对应的客户ID,用一个VLOOKUP公式是做不到的,无论是近似匹配,还是通配符匹配。
这就是模糊匹配的场景。
02
正如我在给那位同学的留言回复中所说,微软已经做了模糊匹配的功能。(感谢微软,要想自己写代码实现模糊匹配,其实还是有点难度。要想写出高质量的匹配程序,难度更大了)。
微软以两种方式实现了模糊匹配:一种是“加载项”,另外一种是在Power Query中。
不过遗憾的是在Excel版的Power Query中,目前并没有此功能,在Power BI 桌面版中,才有此功能。所以,今天我先不给大家介绍这种方法。不过,鉴于这个功能太好用了,以后我会给大家介绍的。今天我就介绍如何用加载项来实现模糊匹配的方法。
首先,我们需要下载这个加载项。在微软网站上可以下载该加载项,下载网址是下面这个:
Download Fuzzy Lookup Add-In for Excel from Official Microsoft Download Center
进到这个网址,会看到下面的内容:
这里要说明一下,这个加载项没有别的语言版本,只有英语。
点击Download进入到下载页面,同时会开始自动下载。如果没有开始,在下载页面中点击手动下载的连接:
有时候,开始下载前,会弹出下面的窗口:
点击运行即可。
下载完成后是个SETUP.EXE的可执行文件,点击该文件开始安装,安装完成后什么也没有😉。
你需要重新打开Excel,此时,会弹出这个窗口:
选择安装即可。安装完成后,在Excel中会出现一个新的选项卡“Fuzzy Lookup”:
该选项卡只有一个Fuzzy Lookup的按钮。点击该按钮,在右侧会出现模糊匹配的面板:
我们就在这里进行模糊匹配。
03
让我们回到开始的模糊匹配的实例场景:
我们要根据第一个表的公司名称在第二个表中进行匹配,从而得到对应的客户ID。
这个工具要求的两个表必须是超级表,所有,可以先用Ctrl+T进行转换。
然后打开模糊匹配的面板,在其中进行如下的配置:
这里需要说明两点:匹配结果数量缺省为1,表示选择最接近的一条作为结果。如果是2,就会得到两个匹配结果。相似度阈值的意思是只有大于该值才会被作为匹配成功的结果显示出来。
点击最下方最右边的按钮GO,匹配结果就显示出来了(需要提醒注意的是,结果会显示在当前选中的单元格,所以注意不要覆盖掉已有内容):
最右边的列是相似度,可以看出还是相当高的。如果不想要相似度,可以在输出列的定义那里去掉相似度前面的勾选即可。
04
这个加载项不同于大家常见的加载项。这是使用VSTO开发的加载项,要想完全卸载,需要到控制面板中进行:
在控制面板中,点击“程序”,找到名称为“Fuzzy Lookup Add-in for Excel”的程序:
选中该程序,点击卸载,按提示完成即可。
今天的分享就到这里了!希望对大家有帮助!