在日常我们表格匹配,都是一些VLOOKUP,XLOOKUP等,对于一些近似的条目,很难处理,今儿发现一个函数,相同有效,也能大提高我们的效能,效率,公式自定义匹配函数ZLOOKUP,它通过字符相似度实现模糊查找,而且可以设置近似度。以下是该公式的详细解读和应用方法:
一、公式功能解析
=LAMBDA(值,查找区域,返回值区域,相似率,TAKE(SORTBY(返回值区域,LET(y,MAP(查找区域,LAMBDA(x,COUNT(FIND(MID(x,SEQUENCE(LEN(x)),1),值))/LEN(x))),IF(MAX(y)<相似率,NA(),y)),-1),1))
1.字符拆分与匹配
MID(x,SEQUENCE(LEN(x)),1):将查找区域的每个单元格内容拆分为单个字符
FIND(MID(...),值):检查每个字符是否存在于目标值中,返回匹配结果
COUNT(...)/LEN(x):计算字符匹配比例(即相似度)
2.动态筛选与排序
MAP函数遍历查找区域,生成相似度数组
SORTBY按相似度降序排列返回值区域
TAKE提取相似度最高的结果
3.相似率控制
IF(MAX(y)<相似率,NA()):当最高相似度低于设定阈值时返回错误值,避免低质量匹配
二、参数说明
三、使用步骤
定义自定义函数
点击【公式】【名称管理器】【新建】
名称输入ZLOOKUP,引用位置粘贴该公式
2、调用函数示例
=ZLOOKUP(A2, D:D, E:E, 0.7)
表示在D列查找与A2相似度≥70%的记录,返回对应E列的值
3、处理特殊场景
全称查简称:=ZLOOKUP("北京科技有限公司", D列, E列, 0.5)
带错别字查找:=ZLOOKUP("沃而玛超市", D列, E列, 0.6)
四、应用场景案例
1.公司名称模糊匹配
=ZLOOKUP("腾讯科技", A2:A100, B2:B100, 0.75)
可匹配"A公司(深圳腾讯科技)"、"腾讯科技深圳分公司"等变体
2.地址标准化处理
=ZLOOKUP("北京市海淀区中关村大街1号", C2:C500, D2:D500, 0.8)
自动识别"海淀区中关村大街1号"、"北京海淀中关村1号"等格式差异
五、注意事项
1.版本要求
需WPS 2023或Office 365版本(支持LAMBDA/MAP等新函数)
2.性能优化
避免在10万行以上数据直接使用(可先筛选缩小范围)
对数值型数据建议先用CLEAN和TRIM清洗
3、相似率建议
该函数相比传统VLOOKUP的优势在于能处理字符顺序错乱、部分缺失的复杂场景,但需注意合理设置相似率阈值。
领取专属 10元无门槛券
私享最新 技术干货