今天跟大家分享下我們?nèi)绾卧贓xcel中實現(xiàn)相似度匹配,這也是一個學(xué)員提取的問題,最簡單的方法就是利用PQ之前發(fā)過,但是無奈WPS用不了,今天新的解決方法來了
![]()
一、拆分?jǐn)?shù)據(jù)
公式:=REGEXEXTRACT(A2,"["&D2&"]",1)
在這列D2是查找值,我們查找值的前后連接方括號作為正則的匹配規(guī)則,它就表示會在數(shù)據(jù)源中匹配【ABC2】這四個字符,如果可以匹配到就會返回對應(yīng)的字母,具體效果如下圖所示
![]()
得到了字母就可以使用COUNTA函數(shù)對這個區(qū)域進行計數(shù),來得到數(shù)據(jù)提取的個數(shù)
公式:=COUNTA(REGEXEXTRACT(A2,"["&D2&"]",1))
二、公式擴展
上面演示的僅僅是一個結(jié)果,我是要對整列的數(shù)據(jù)進行比較,所以就需要對這個公式進行擴展,讓他對一整列的數(shù)據(jù)進行計數(shù),就可以考慮使用BYROW,它的作用是將函數(shù)應(yīng)用于整行中,結(jié)果如下圖所示
公式:=BYROW(A2:A11,LAMBDA(X,COUNTA(REGEXEXTRACT(X,"["&F2&"]",1))))
這個公司的關(guān)鍵點就是將A2:A11這區(qū)域代入到正則函數(shù)中,對整行數(shù)據(jù)進行拆分計數(shù),在當(dāng)前的表格中最大的數(shù)據(jù),就是我們需要的最相似的數(shù)據(jù)
![]()
三、提取數(shù)據(jù)
公式:=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函數(shù)來做數(shù)據(jù)篩選,我們使用MAX函數(shù)提取計數(shù)結(jié)果來得到最大值,最大值對應(yīng)的就是最相似的數(shù)據(jù)
![]()
四、直接套用
這個函數(shù)想要看懂還是需要有一定的基礎(chǔ)的,如果你看不懂也沒關(guān)系,粘貼下方公式直接使用,只需要修改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修改為你的表格的結(jié)果列
![]()
五、注意事項
使用這個函數(shù),大家需要注意2點,不然有可能會造成無法使用的情況
1. 如果你是WPS,請將REGEXEXTRACT替換為REGEXP,它們的名字不一樣,用法是一樣的
2. 查找值不要添加任何的標(biāo)點符號,如果你的標(biāo)點符號恰好是正則中的元字符,這個函數(shù)就無法使用了
想要提高工作效率,不想再求同事幫你解決各種Excel問題,可以了解下我的專欄,WPS用戶也能使用,講解了函數(shù)、圖表、透視表、數(shù)據(jù)看板、AI做表格等功能
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.