You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel不完整企业信息匹配:精确/近似匹配公式需求

Excel企业名称/地址的精确+近似匹配解决方案

一、优先实现精确匹配

你已经用过VLOOKUP,换成XLOOKUP会更灵活,直接满足精确匹配优先的逻辑:

  • 举个例子:假设List A的合并字段在A2:A100,List B的合并字段在D2:D100,对应ID列是C2:C100
  • 在List A的B2单元格输入公式:
    =XLOOKUP(A2,$D$2:$D$100,$C$2:$C$100,"无精确匹配",0)
    
    用0参数强制精确匹配,找不到匹配项时返回“无精确匹配”,方便后续触发近似匹配逻辑。

二、近似匹配:按共同词汇+数字数量找最相似项

要实现基于共同内容的近似匹配,需要通过辅助列统计匹配度,再提取对应ID:

1. 给List B添加匹配度统计辅助列

在List B的E2单元格输入公式,统计当前行合并字段与List A当前单元格的共同词汇(含数字)数量:

=SUMPRODUCT(--ISNUMBER(SEARCH(TEXTSPLIT(D2," "),A2)))
  • TEXTSPLIT(D2," "):把List B的文本按空格拆分成单个词汇(数字也会被当作独立词汇)
  • SEARCH(...,A2):检查每个词汇是否在List A的目标单元格中存在
  • --ISNUMBER(...):将“存在”的结果转为1,“不存在”转为0
  • SUMPRODUCT:求和得到共同词汇的总数量,数值越大说明匹配度越高

2. 提取最高匹配度的对应ID

在List A的C2单元格输入公式,优先使用精确匹配结果,无精确匹配时取List B中匹配度最高的ID:

=IF(B2<>"无精确匹配",B2,INDEX($C$2:$C$100,MATCH(MAX($E$2:$E$100),$E$2:$E$100,0)))
  • 先判断精确匹配是否成功,成功则直接复用B列结果;失败则查找List B中E列最大值对应的ID

3. 计算匹配百分比

在List A的D2单元格输入公式,算出匹配内容的占比:

=IF(B2<>"无精确匹配",100%,(MAX($E$2:$E$100)/COUNTA(TEXTSPLIT(INDEX($D$2:$D$100,MATCH(MAX($E$2:$E$100),$E$2:$E$100,0))," ")))*100)
  • 精确匹配直接返回100%;近似匹配用共同词汇数除以匹配项的总词汇数,转换为百分比

额外提示

  • 如果List B中有多个相同最高匹配度的项,MATCH会返回第一个出现的ID;若需要优先选择包含数字的项,可以给数字类词汇添加权重(比如在辅助列公式中给数字词汇额外加1分)
  • 批量处理辅助列可以用BYROW函数,无需手动下拉:
    =BYROW($D$2:$D$100,LAMBDA(x,SUMPRODUCT(--ISNUMBER(SEARCH(TEXTSPLIT(x," "),A2)))))
    
  • 若文本中包含乱码或特殊字符,可先用CLEAN函数清理后再进行拆分匹配

内容的提问来源于stack exchange,提问作者Chris Cokalis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 19:22:40