Mir ist gerade aufgefallen, dass es in der Excel-Suche keine Option für „Nur ganzes Wort abgleichen“ gibt (ich meine nicht „gesamten Zellinhalt abgleichen“). Die Suche nach „Teil“ sollte also nicht zu „Partner“ führen. MS Word hat diese Option (siehe Screenshot von MS Word).
Gibt es hierfür eine Problemumgehung in Excel?
Antwort1
Wie Scott bemerkte, war meine ursprüngliche Antwort falsch.
Aufgrund der Vielzahl von Möglichkeiten, eine Wortgrenze zu definieren, wird dies mit einer Formel schwierig sein. Ich vermute, deshalb \b
gibt es (Wortgrenzen) in regulären Ausdrücken. Wenn wir sie nur im Suchen/Ersetzen-Dialog von Excel verwenden könnten.
Installieren Sie dieses Excel-Add-In,http://www.codedawn.com/excel-add-ins.phpKlicken Sie auf das neueRegEx suchen und ersetzen(oder Menüoption unter 2003) und verwenden Sie diesen Suchbegriff \bword\b
, deaktivieren/aktivieren Sie die Option „Groß-/Kleinschreibung beachten“ und klicken Sie auf „Suchen“.
Es ist wichtig, dass die b's klein geschrieben sind und Sie müssen ein wenig über reguläre Ausdrücke lernen (empfohlenDiese Seite), wenn Sie nach etwas suchen möchten, das Satzzeichen beinhaltet. Sie können aber auch beliebige Standardbuchstaben/-zahlen zwischen die \b
Tags setzen, wenn Sie nur danach suchen möchten.
Ich denke, ich habe mit diesem Test die meisten Fälle abgedeckt:
Antwort2
Formelmäßig können Sie mit dieser Formel nach „Wort“ (ohne Berücksichtigung der Groß- und Kleinschreibung) suchen, um nur für das genaue Wort WAHR zu erhalten, vorausgesetzt, es gibt keine Satzzeichen.
=ISNUMBER(SEARCH(" Word "," "&A1&" "))
Das würde TRUE für Text wie diesen zurückgeben.
Ein Wort an die Weisen oderFett ist das Wort
und richtig FALSE fürDamoklesschwert.....aber Sie erhalten auch FALSE für etwas wie
Mein Wort!weil das Ausrufezeichen die Übereinstimmung negiert
Um mit der Zeichensetzung umzugehen, können Sie mehrere SUBSTITUTE-Funktionen verwenden, z. B. um Komma, Semikolon und Ausrufezeichen zu ignorieren, können Sie diese Version verwenden
=ISNUMBER(SEARCH(" Word "," "&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",",""),";",""),"!","")&" "))
Antwort3
Wenn Sie die Parameter im Abschnitt „Suchen“ eingeben, fügen Sie einfach vor oder nach dem Wort ein Leerzeichen ein. In meinem Fall verhinderte „Van“ die Änderung von „SAVANA“ und „Man“ verhinderte die Änderung von „Mankind“.
Antwort4
Ich habe eine Lösung für dieses Problem gefunden.
Sie müssen eine Funktion erstellen, die Sie aufrufen, nachdem Sie Ihre Standardsuche durchgeführt und 1 Ergebnis gefunden haben.
Die Funktion prüft, ob das Wort ganz oder nur eine Note ist. Hier ist der Code der Funktion:
Es prüft das Zeichen vor und nach dem gefundenen Ausdruck und gibt „true“ zurück, wenn es KEIN Buchstabe ist (mit oder ohne Akzent), andernfalls „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