Excel超级筛选来了!根据相似度做匹配,让效率提升90%

发布时间:2025-08-11 11:26  浏览量:1

今天跟大家分享下我们如何在Excel中实现相似度匹配,这也是一个学员提取的问题,最简单的方法就是利用PQ之前发过,但是无奈WPS用不了,今天新的解决方法来了

公式:=REGEXEXTRACT(A2,"["&D2&"]",1)

在这列D2是查找值,我们查找值的前后连接方括号作为正则的匹配规则,它就表示会在数据源中匹配【ABC2】这四个字符,如果可以匹配到就会返回对应的字母,具体效果如下图所示

得到了字母就可以使用COUNTA函数对这个区域进行计数,来得到数据提取的个数

公式:=COUNTA(REGEXEXTRACT(A2,"["&D2&"]",1))

上面演示的仅仅是一个结果,我是要对整列的数据进行比较,所以就需要对这个公式进行扩展,让他对一整列的数据进行计数,就可以考虑使用BYROW,它的作用是将函数应用于整行中,结果如下图所示

公式:=BYROW(A2:A11,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&F2&"]",1))))

这个公司的关键点就是将A2:A11这区域代入到正则函数中,对整行数据进行拆分计数,在当前的表格中最大的数据,就是我们需要的最相似的数据

公式:=FILTER(B2:B11,MAX(BYROW(A2:A11,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&E2&"]",1)))))=BYROW(A2:A11,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&E2&"]",1)))))

公式虽然比较长,但是并不难理解,主体是一个FILTER函数来做数据筛选,我们使用MAX函数提取计数结果来得到最大值,最大值对应的就是最相似的数据

这个函数想要看懂还是需要有一定的基础的,如果你看不懂也没关系,粘贴下方公式直接使用,只需要修改2处即可

公式=LET(y,A2:A11,x,B2:B11,FILTER(x,MAX(BYROW(y,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&E2&"]",1)))))=BYROW(y,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&E2&"]",1))))))

1. A2:A11修改为你表格的查找列

2. B2:B11修改为你的表格的结果列

使用这个函数,大家需要注意2点,不然有可能会造成无法使用的情况

1. 如果你是WPS,请将REGEXEXTRACT替换为REGEXP,它们的名字不一样,用法是一样的

2. 查找值不要添加任何的标点符号,如果你的标点符号恰好是正则中的元字符,这个函数就无法使用了

想要提高工作效率,不想再求同事帮你解决各种Excel问题,可以了解下我的专栏,WPS用户也能使用,讲解了函数、图表、透视表、数据看板、AI做表格等功能