excel模糊匹配两列⽂字_解决⽂字模糊匹配的⼩⼯具
问题
财务分析的表哥表们、整理调查问卷的师⽣们往往需要从表A的某列匹配查表B的某些数据。如果表A某列完全等于表B某列,或是后者的⼦集,那么在excel⾥⽤vlookup或find类组合函数,或⽤“*”类通配符根据正则关系,可以轻松地完成这个匹配。
但假如这两列不满⾜这个条件,即表B某列不包含表A某列,那么简单依靠通配符和正则关系求解则很难奏效。以下图为例:
假设公司简称在表A,⽽其他⼏列在表B。我们希望通过公司简称匹配相应的公司全称和其他信息。根据上图我们看到,“万 科 A” 既不完全等于“万科企业股份有限公司”,也不属于后者的⼦集。“万”和“科”在后者出现过,⽽“A”则没有。另外再看到“深深房A”,对应的是“深圳经济特区房地产(集团)股份有限公司”。乍⼀看,“深”和“房”在后者出现过,可是前者怎么有2个“深”?
由上可见,公司简称并不是由公司全称通过单⼀规则简化⽽来,因此通配符和正则表达式的⽅式很难使⽤。
解决⽅案
为了解决类似,甚⾄更复杂的模糊匹配问题,我开发了这个⼩⼯具。打开dist⽂件夹下,稍等2秒,按提⽰输⼊相应信息如下图所⽰:
将在dist⽂件夹下⽣成⼀个叫匹配表的⽂件。
该⽂件包含两个sheet。⼀个是匹配关系表。是将表A匹配列去重之后,与表B对应列⼀⼀对应的关系表。其中A列是表A的列,B列是表B的列,C列是匹配率,100为完全匹配,D列为表B的对应索引(即⾏的位置)。如下图我们可以看到,“万 科 A”和“深深房A”这样不规则关系也能匹配出来。
另⼀个表是匹配数据,相当于表A通过匹配关系表,连接了表B的所有数据,如下图所⽰:
备注
1. 程序⽂件夹总⼤⼩约71M,运⾏⽂件约31M。
vlookup模糊匹配
2. 整个程序解压即可⽤,⽆需安装,不限放置位置(C,D,E,F盘都可以)。但⽂件夹内的builder和dist两个⼦⽂件夹及⾥⾯的程序,不要删
除或也不要分开放置。
3. 要匹配的表A和表B可以在同⼀个⼯作簿,也可以在不同⼯作簿。
4. ⽂件名、⽂件夹名称,可以出现中⽂、空格之类的字符。
5. 该⼯具正确率⼀般98%以上,不保证达到100%。因为⼯作原理是判断两个字符相似度,当字符A字数较少时,纯靠相似度⾼低来判
断不⼀定准确。举例:
“阳光股份”对应的全称是“阳光新业地产股份有限公司”,但与“阳光城集团股份有限公司”的相似度更⾼(因为后者字数较少,相似度反⽽更⾼)。
6. 当被匹配列⾏数过多情况下,匹配速度较慢。当表B⾏数超过4000⾏,表A1000⾏左右时,耗时约2分钟。⽬前正在优化算法,期待
下⼀版本。
7. 程序获取⽅式:后台回复 模糊匹配 即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。