3 步 · 3 段可复制提示词 · 约 8 分钟读完
站内精选
核心结论

两张表一拉,120 行 VLOOKUP 报错,因为「XX有限公司」和「XX公司」对不上。别直接合并:先列候选配对(74 对),再定 5 条归一规则,最后重匹配。320 行最终精确 187、归一后 58、未匹配 75。

两张表要对着看:左边 320 行订单,右边 280 行客户档案。VLOOKUP 一拉,120 行报错。客户明明就在右边,就是匹配不上——左边写「杭州云启科技有限公司」,右边写「杭州云启科技」,多三个字。

一句话结论

这类活不是「去重」,是把同一个东西的不同写法认出来,而且认的时候不能一把梭。顺序是三步:先列出「像但不等」的配对(只列不合并,让你确认)、再定归一规则(去后缀、统一全半角、去空格)、最后重匹配并列剩下的。核心一条:绝不让 AI 直接决定哪两行是同一家——「XX有限公司」和「XX公司」可能是同一家,也可能是母子公司,合并错了比不合并麻烦得多。

这篇解决什么问题

三个症状。一是匹配率低但不知原因:120 行报错,你抽三行,两行是多了空格,一行是「公司」写成「有限公司」,剩下 117 行只能一行行看。二是改着改着改乱:手动统一名称,改到一半发现有两个客户本不该合并,已改的部分不知道怎么退。三是改完没法对账:为了匹配把右边表的客户名改成左边写法,两张表都跟原始系统对不上,下次同步全乱。

根子在把「归一」和「合并」当成一个动作。归一只把写法标准化,合并是判断两个东西是不是一个——前者机器能做,后者必须人定。

开始前要准备什么

  • 两张表都留原样备份。后面所有改动做在副本上,原表不动。几十秒的事,能救回全部返工。
  • 一个判断依据:什么情况算同一家。统一社会信用代码相同最可靠,名字归一后相同要靠人看。
  • 能接受的匹配率。320 行匹配上 240 行、剩下 80 行人工,是可接受的;追求 100% 自动匹配,一定会错。
  • 一条纪律:归一后的名字另起一列存,不要覆盖原列。

具体怎么做

第一步:列出「像但不等」的配对,只列不合并

让 AI 做一次模糊比对,输出的是候选配对清单,不是合并结果。清单要带相似度和差异点,你才能快速判断。320 行对 280 行,候选配对数在 50 到 80 对之间,看着多,但按差异类型分组之后只有五六种情况。

这是两张表:A 表 320 行订单(客户名称、金额、日期),B 表 280 行客户档案(客户名称、信用代码、地区)。

请做一次模糊比对,找出「可能是同一家但写法不同」的配对。

1 只输出候选配对清单,不要合并、不要生成新表、不要改任何原有数据;
2 每对给出:A 表名称、B 表名称、相似度、差异点(具体差在哪几个字或哪个符号);
3 按差异类型分组:后缀不同(有限公司/公司)、空格差异、全半角差异、简称与全称、可能有错别字,每组给数量;
4 单独列出「相似度低于 60 但你怀疑是同一家的」,标上理由。

硬约束:不要替我判断哪些是同一家;不要只给相似度不给差异点;A 表同一行只能出现在一个配对里。

第二步:按类型定规则

清单出来后你会发现,大部分差异就那么几种,每组一条规则就解决。常见的五条:去掉括号内容、统一「有限公司/有限责任公司/公司」、全角转半角、去掉所有空格、英文大小写统一。

定完规则一定要问一句:有没有哪两个名字套完规则后变成一样,但其实是两家?这一问能挡住大部分误合并。

这是第一步的候选配对清单,我按你的分组判断完了:确认是同一家的 68 对、确认不是的 12 对、待定 9 对。

请针对那 68 对定归一规则:
1 给出 3 到 5 条规则,每条一句话,按「能处理多少对」排序;
2 每条说明会不会误伤(把不同两家变成同名),举一个可能的误伤例子;
3 指出套完这 5 条规则后还有哪几对处理不了;
4 单独回答:套完规则后,B 表里有没有两组不同的名字变成完全一样?有就列出来。

硬约束:规则只能做写法标准化,不要做「判断是否同一家」;不要建议我用模糊匹配公式直接拉。

第三步:重匹配,剩下的列清单

执行时三件事必做:归一名另存一列(不覆盖原列)、匹配状态另存一列(精确/归一后/人工确认)、未匹配的单列一张表。

剩下那张表最值钱。它不是失败清单,是待核实清单:确实没这个客户、名字写错得离谱、同一家用了完全不同的名字。

按定的 5 条规则在副本上执行,原表不动。

1 两张表各新增一列「归一名称」,原名称列不要动;
2 用归一名称匹配,结果写入新增的「匹配状态」列,取值只有三种:精确匹配、归一后匹配、未匹配;
3 匹配上的,把 B 表的信用代码带到 A 表(这是最可靠的同一家依据);
4 所有未匹配的行单独导出成一张表,字段为 A 表名称、金额、日期、归一后名称;
5 给统计:精确多少、归一后多少、未匹配多少,以及未匹配里有多少是「与某个名字高度相似但没配上」。

硬约束:不覆盖任何原始列;不删除任何行;未匹配的行不要猜着填;统计数字要能对上原始行数。

实测记录

320 行对 280 行,第一步出候选配对 74 对,分 6 组:后缀不同 31 对、空格差异 18 对、全半角 9 对、简称与全称 11 对、错别字 3 对、其他 2 对。分组之后判断快得多——31 对后缀不同的,一条规则一次性全解决。

第三步结果:精确匹配 187 行、归一后匹配 58 行、未匹配 75 行。75 行里 41 行是 B 表确实没这个客户,22 行名字差太多(品牌名 vs 公司名),12 行需要回系统查。

两个数值得记住。精确匹配只占 58%,剩下 42% 靠归一和人工,别指望公式一拉就完事;另外套完规则后有 3 组名字变成完全一样但其实是两家,都是同名不同地区的分公司,靠信用代码才分开。

最容易错的 3 个地方

第一,让它直接合并。它会把「杭州云启科技」和「杭州云启信息科技」判成同一家,相似度 92。合并后两张表都错了,还错得很自然,不容易发现。

第二,归一的时候覆盖原列。改完再也回不到原始状态,也没法跟系统对账。原列留着,多一列的成本远低于返工。

第三,追求 100% 匹配。剩下 75 行里 41 行本来就不该匹配上。硬凑的结果是把新客户挂到老客户名下,后面发货、开票全错。

可复用的东西

先列配对不合并:让 AI 输出候选对 + 差异点 + 相似度,人来定是不是同一家。

按差异类型分组:74 对看着多,分成 6 组后每组一条规则就解决。

归一名另存一列:原列永远不动,这是能回滚的前提。

问一句「有没有误伤」:套完规则后哪两组不同名字变成一样了。这一问能挡住同名不同地区这类错误。

常见问题解答

直接用模糊匹配公式拉,不行吗

能拉,但你会失去判断。模糊匹配只给一个相似度,不给差异点——相似度 92 的两对,一对是「多了个空格」,另一对是「母公司和子公司」,前者该合并后者不该,公式分不出来。正确用法是把模糊匹配当筛子,先筛出候选配对,再人工定。实操上模糊匹配拉一遍只要几秒,但核对它给的结果要花时间,因为它不告诉你差在哪,你得自己比对。

有信用代码是不是就不用归一名了

如果两张表都有信用代码,那是最好的情况,直接按代码匹配,完全不需要归一名。但大多数情况是一边有一边没有,或者有一边是乱的。这时候的用法是:先用归一名匹配出候选,再用信用代码做终审——匹配上的两行如果信用代码不同,就是误合并,打回去。这个顺序比反过来好,因为代码能做最终判断,但代码缺失时它没法帮你找候选。

未匹配的那些行怎么处理最快

先分类再处理,不要一行一行看。看看那批未匹配的名称有什么共同特征:如果都是「XX旗舰店」「XX专卖店」这种,可能是渠道商不是客户;如果都是新客户,那就是 B 表还没录入,直接补录;如果名字风格完全不同(左边写「杭州云启」右边写「云启科技」),那要去系统里查一下。分类之后通常只有两三类,每类一个处理动作,比逐行判断快十倍。

规则定完下次还要重定吗

不用重定,但要存下来。把这几条规则写成一个固定文件,下次直接贴给 AI,让它先按这个执行,只把「按规则处理不了的」单列出来。这样每次只处理新增的边界情况,规则库会越来越厚。另外提醒一句:规则是给「写法标准化」用的,不要往里加「XX 和 XX 是同一家」这种判断——那种判断一旦写死,以后客户结构变了就会出错。

小程序阅读免费
微信扫码进入小程序,按岗位找 AI 实操步骤
微信扫码进小程序
按岗位找 AI 实操步骤 · 提示词可收藏

发表回复

后才能评论