今天跟大家分享下我們如何在Excel中實現(xiàn)相似度匹配,這也是一個學員提取的問題,最簡單的方法就是利用PQ之前發(fā)過,但是無奈WPS用不了,今天新的解決方法來了

一、拆分數據
公式:=REGEXEXTRACT(A2,"["&D2&"]",1)
在這列D2是查找值,我們查找值的前后連接方括號作為正則的匹配規(guī)則,它就表示會在數據源中匹配【ABC2】這四個字符,如果可以匹配到就會返回對應的字母,具體效果如下圖所示
![]()
得到了字母就可以使用COUNTA函數對這個區(qū)域進行計數,來得到數據提取的個數
公式:=COUNTA(REGEXEXTRACT(A2,"["&D2&"]",1))
二、公式擴展
上面演示的僅僅是一個結果,我是要對整列的數據進行比較,所以就需要對這個公式進行擴展,讓他對一整列的數據進行計數,就可以考慮使用BYROW,它的作用是將函數應用于整行中,結果如下圖所示
公式:=BYROW(A2:A11,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&F2&"]",1))))
這個公司的關鍵點就是將A2:A11這區(qū)域代入到正則函數中,對整行數據進行拆分計數,在當前的表格中最大的數據,就是我們需要的最相似的數據
![]()
三、提取數據
公式:=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做表格等功能
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.