Ersetzen nur ganzer Wörter in Excel (Microsoft Excel)
Gary möchte eine Abkürzung wie „sys“ suchen und ersetzen und durch „Systeme“ ersetzen. Das Problem ist, dass, wenn er alle Vorkommen ersetzt, vorhandene Instanzen von „system“ in „systemstem“ umgewandelt werden. Gary könnte jedes Vorkommen untersuchen und einzeln ersetzen, aber das würde ewig dauern. Er fragt sich, ob es eine Möglichkeit gibt, Excel dazu zu bringen, nur „ganze Wörter“ von „sys“ durch „Systeme“ zu ersetzen, wie es in Word der Fall ist.
Diejenigen, die mit den Such- und Ersetzungsfunktionen von Excel vertraut sind, könnten auf den ersten Blick denken, dass Sie den „Gesamten Zelleninhalt abgleichen“
verwenden könnten Einstellung, um die Arbeit zu erledigen. Dies funktioniert jedoch nur, wenn die Abkürzung „sys“ das einzige in einer Zelle ist. In Garys Situation ist das nicht der Fall. Er hat Sätze und ganze Sätze, die „sys“ enthalten (wie in „sys admin“ oder „Ein sys-Check ist erforderlich“). So seine Bitte um so etwas wie die Einstellung „Ganzes Wort“ von Word.
In diesem Sinne gibt es einige Dinge, die Sie ausprobieren können. Welche Lösung für Sie am besten geeignet ist, hängt von der Art des Textes in Ihrem Arbeitsblatt ab.
Wenn zum Beispiel der einzige wahrscheinliche Verwirrungspunkt das Wort „System“ ist,
dann ist es am einfachsten, „system“ einfach durch etwas Einzigartiges wie „\ {[]}“ zu ersetzen. (Ich mag Klammern und Klammern, weil sie in den meisten Daten eindeutig sind.) Ersetzen Sie dann „sys“ durch „systems“ und ersetzen Sie schließlich „\ {[]}“ durch „system“.
Wenn es neben „System“ noch andere Verwirrungspunkte gibt, können Sie Leerzeichen in Ihren Find What-Text einfügen. Mit anderen Worten, suchen Sie nach „sys“ (mit den Leerzeichen) und ersetzen Sie es durch „systems“ (wieder mit den Leerzeichen). Dadurch werden alle Vorkommen korrekt gefunden, solange auf sys kein Satzzeichen folgt, nicht am Anfang einer Zelle und nicht am Ende einer Zelle.
Natürlich können Sie zusätzliche Suchvorgänge durchführen, um auf einige dieser Informationen zuzugreifen. Zum Beispiel könnten Sie nach „sys“ suchen (Leerzeichen nur am Ende)
Vorkommen am Anfang einer Zelle zu finden. Es würde Ihnen nichts nützen, nach „sys“ zu suchen (Leerzeichen nur am Anfang), da dies mit jedem Auftreten von „System“ übereinstimmen würde, dem ein Leerzeichen vorangestellt ist. Bei sequentiellen Suchen können Sie auch nach „sys“ suchen, gefolgt von einem Punkt, einem Komma, einem Fragezeichen, einem Ausrufezeichen, einem Semikolon usw.
Wenn Sie lieber ein Makro verwenden möchten, finden Sie im Folgenden ein Beispiel dafür, wie Sie das Problem angehen können. Das Makro fordert Sie auf, zu suchen, was Sie suchen und durch was Sie es ersetzen möchten.
Sub ReplaceOnlySpecifirdWord() Dim c As Range, rng As Range, rngArea As Range Dim vFind As String, vReplace As String Dim v As Variant Dim arrSplit As Variant Dim s As String Dim i As Integer, n As Long Dim b As Boolean Const csDELIMITER = " " On Error Resume Next ' Reference Constants only Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants) If rng Is Nothing Then MsgBox "There are no constants on active sheet...", vbExclamation Exit Sub End If On Error GoTo 0 ' Get Find and Replace strings v = InputBox(Prompt:="Please enter String to be replaced.") If v <> "" Then vFind = v Else MsgBox "Wrong entry; app is going to be terminated.", vbExclamation Exit Sub End If v = InputBox(Prompt:="Please enter Replace String.") If v <> "" Then vReplace = v Else MsgBox "Wrong entry; app is going to be terminated.", vbExclamation Exit Sub End If Application.ScreenUpdating = False Application.Calculation = xlCalculationManual n = 0 For Each rngArea In rng.Areas For Each c In rngArea.Cells b = False arrSplit = Split(c.Value, csDELIMITER) For i = LBound(arrSplit) To UBound(arrSplit) If arrSplit(i) = vFind Then arrSplit(i) = vReplace n = n + 1 b = True End If Next i If b Then s = vbNullString For i = LBound(arrSplit) To UBound(arrSplit) s = s & arrSplit(i) If i <> UBound(arrSplit) Then s = s & csDELIMITER End If Next i c.Value = s End If Next c Next rngArea Application.Calculation = xlCalculationAutomatic MsgBox "Replaced " & n & " words...", vbInformation End Sub
Das Makro erledigt seine Arbeit, indem es (nacheinander) alle Wörter in jeder Zelle findet.
Wenn das Wort mit dem übereinstimmt, wonach Sie suchen, wird es ersetzt. Der Zellinhalt wird dann wieder zusammengesetzt.
Dieser Ansatz hat einen Nachteil: Das Matching ist sehr wörtlich. Dies bedeutet, dass „sys“ mit „sys“ übereinstimmt, jedoch nicht mit „Sys“, „SYS“ oder „sys“, gefolgt von einem Satzzeichen. (Das Makro verwendet Leerzeichen als Trennzeichen zwischen Wörtern.)
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (13391) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.