查找、仅匹配整个单词的解决方法

查找、仅匹配整个单词的解决方法

我刚刚注意到,Excel 查找中没有“仅匹配整个单词”的选项(我不是在谈论“匹配整个单元格内容”),例如搜索“part”不应匹配“partner”。MS Word 有此选项(查看 MS Word 的屏幕截图)。

Excel 中是否有解决此问题的办法?

Word - “仅查找全词”示例

答案1

正如斯科特 (Scott) 指出的那样,我最初的答案是错误的。

由于定义单词边界的方法有很多种,因此用公式来做这件事会比较困难。我猜这就是为什么\b正则表达式中存在(单词边界)的原因。如果我们能在 Excel 的查找/替换对话框中使用它们就好了。

安装此 Excel 插件,http://www.codedawn.com/excel-add-ins.php点击新的查找并替换 RegEx按钮(或 2003 上的菜单选项)并使用此搜索词\bword\b,取消勾选/勾选匹配大小写,然后点击“查找”。

重要的是,b 是小写的,你必须学习一些正则表达式(推荐本网站) 如果您想搜索涉及标点符号的内容,但\b如果您只想搜索这些,那么在标签之间放置任何标准字母/数字都是可以的。

我认为这个测试涵盖了大多数情况: 测试图像

答案2

公式方面,你可以用这个公式搜索“单词”(不区分大小写),只对精确的单词获得 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

相关内容