僅查找、匹配整個單字的解決方法

僅查找、匹配整個單字的解決方法

我剛剛注意到,Excel 查找中沒有選項“僅匹配整個單字”(我不是在談論“匹配整個單元格內容”),例如搜尋“部分”不應匹配“合作夥伴”。 MS Word 有此選項(檢查 MS Word 的螢幕截圖)。

Excel 中有解決此問題的方法嗎?

Word - “僅查找整個單字”範例

答案1

正如斯科特所指出的,我原來的答案是錯誤的。

由於定義單字邊界的方法有很多種,因此使用論壇很難做到這一點。我想這就是\b為什麼正規表示式中存在(字邊界)的原因。如果我們可以在 Excel 的尋找/取代對話方塊中使用它們就好了。

安裝此 Excel 插件,http://www.codedawn.com/excel-add-ins.php點擊新的尋找和取代正規表示式按鈕(或 2003 上的選單選項)並使用此搜尋字詞\bword\b,取消勾選/勾選符合大小寫並點擊「尋找」。

重要的是 b 是小寫的,你必須學習一些關於正規表示式的知識(推薦這個網站\b)如果您想搜尋涉及標點符號的內容,但如果您想搜尋的只是這些,可以在標籤之間放置任何標準字母/數字。

我想我通過這個測試涵蓋了大多數情況: 測試影像

答案2

就公式而言,您可以使用此公式搜尋“Word”(不區分大小寫),假設沒有標點符號,則僅針對確切的單字獲得 TRUE

=ISNUMBER(SEARCH(" Word "," "&A1&" "))

對於像這樣的文字將傳回 TRUE

給智者的一句話 或者油脂就是這個詞

並正確為 FALSE達摩克利斯之劍……但你也會得到 FALSE 之類的東西

我的話!因為感嘆號否定了匹配

為了處理標點符號,您可以使用多個 SUBSTITUTE 函數,例如要忽略逗號、分號和感嘆號,您可以使用此版本

=ISNUMBER(SEARCH(" Word "," "&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",",""),";",""),"!","")&" "))

答案3

在「尋找」部分輸入參數時,只需在單字前後新增一個空格即可。就我而言,「Van」阻止「SAVANA」改變,而「Man」則阻止「Mankind」改變。

答案4

我已經找到了解決該問題的方法。

您必須建立一個在進行標準搜尋並找到 1 個結果後要呼叫的函數。

該函數將檢查單字是否完整或註釋。這是該函數的程式碼:

它檢查找到的表達式之前和之後的字符,如果不是字母(帶重音或不帶重音),則返回 true,否則返回 false。

Function WholeWord(ByVal text As String, ByVal expression As String) As Boolean

Dim aux1 As Integer: aux1 = 0
Dim aux2 As Integer: aux2 = 0


Dim condition1 As Boolean: condition1 = False
Dim condition2 As Boolean: condition2 = False

aux1 = InStr(1, text, expression, vbTextCompare)

If aux1 = 1 Then
condition1 = True
Else
If UCase(Mid(text, aux1 - 1, 1)) Like "[!A-ZÂÊÎÔÛÁÉÍÓÚÇÃÕÀÈÌÒÙÄËÏÖÜ]" Then
condition1 = True
End If
End If

aux2 = aux1 + Len(expression)

If aux2 = Len(text) + 1 Then
condition2 = True
Else
If UCase(Mid(text, aux2, 1)) Like "[!A-ZÂÊÎÔÛÁÉÍÓÚÇÃÕÀÈÌÒÙÄËÏÖÜ]" Then
condition2 = True
End If
End If

If condition1 = True And condition2 = True Then
WholeWord = True
Else
WholeWord = False
End If

End Function

相關內容