Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Teilstring in Zellen suchen & löschen

Teilstring in Zellen suchen & löschen
18.07.2020 12:20:05
Michael
Hallo Zusammen,
in einer Excel-Liste muss ich in zwei bis drei Spalten in jeder Zelle den Inhalt prüfen:
wenn das Zeichen: _ gefunden wird, soll der Unterstrich und der Rest erntfernt werden.
zB.: Test_123 wird gefunden, _123 soll gelöscht werden. Übrig bleibt der String Test.
Vielen Dank für Eure Unterstützung
Michael
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilstring in Zellen suchen & löschen
18.07.2020 12:55:36
Herbert_Grom
Hallo Michael,
wenn in A1 dein String steht, kannst du das mit dieser Formel in B1 lösen:
=WENN(ISTFEHLER(FINDEN("_";A1));"";LINKS(A1;FINDEN("_";A1)-1))
Servus
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:12:59
Michael
Hallo Herbert,
da ich viele Zellen in einer Excel-Liste prüfen muss, kommt eigentlich nur eine VBA-Lösung in Betracht.
Für andere Aufgaben habe mir Deine Formel gerne notiert.
Vielen Dank und Gruß
Michael
Anzeige
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:16:36
Herbert_Grom
Hallo Michael,
ist das Ergebnis, so wie ich es gerechnet habe, richtig?
Servus
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:36:39
Herbert_Grom
Hallo Michael,
da du mir nicht antwortest, habe ich es mal so gemacht, wie ich es denke:
Sub DatenSamnmeln()
Dim iRowIn%, iRowOut%, iLastRow%
With Sheets(2)
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For iRowOut = 2 To iLastRow
If Cells(iRowOut, 9)  Cells(iRowOut, 2) Then
If Cells(iRowOut, 8) = "" Then
If DateValue(.Range("B" & iRowOut).Value) 
Servus
Anzeige
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:38:48
Herbert_Grom
Hallo Michael,
sorry, aber da war ich auf der falschen Baustelle!
Servus
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:46:37
Michael
Hallo Herbert,
kein Problem. Ich habe Code eh nicht verstanden!
Gruß
Michael
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:09:39
Daniel
Hi
Ersetze mit der Menüfunktion ERSETZEN _* durch nichts, Haken "gesamten Zellinhalt vergleichen nicht setzen.
Ersetzen kennt die Joker ? und *
Andere Möglichkeit, diese muss aber für jede Spalte einzeln angewendet werden:
Verwende DATEN - DATENTOOLS - TEXT IN SPALTEN mit dem Unterstrich als Trennzeichen und Übernehme nur die erste Spalte.
Gruß Daniel
Anzeige
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:15:04
Michael
Hallo Daniel,
ist auch eine VBA-Lösung möglich?
Gruß und vielen Dank
Michael
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:20:28
Daniel
Hi
Du kannst fast alles, was du über Excel-Menüfunktionen ausführen kannst, auch per Makro ausführen lassen.
Wenn du den notwendigen VBA-Befehl nicht kennst, hilft dir der Makrorecorder weiter.
Gruß Daniel
Anzeige
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:24:05
Michael
Hallo Daniel,
dann muss ich aber in der Excel-Liste mehrere Leerspalten einfügen.
Ich habe mich schon selber an einer VBA-Lösung versucht, leider klappt es einfach nicht so richtig.
Gruß
Michael
AW: Teilstring in Zellen suchen & löschen
18.07.2020 14:32:30
Daniel
Warum musst du dann Leerspalten einfügen?
Wie sieht dein Versuch aus?
Nööö…
18.07.2020 15:39:02
Günther
und "eigentlich ja" heißt bekanntlich "eigentlich nein". ;-)
Mit deiner 2016er-Version (oder neuer) kannst du ganz ohne VBA über Daten | Abrufen und transformieren gehen und dann über das Menü Transformieren alles nach einem definierten Trennzeichen abschneiden. Ohne Formel, ohne Code.
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
AW: Teilstring in Zellen suchen & löschen
18.07.2020 13:55:20
Herbert_Grom
Hallo Michael,
wenn die zu prüfenden Spalten A & B sind, geht es damit:
Sub TeilStringLöschen()
Dim iLastRow%, iCount%
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For iCount = 1 To iLastRow
If InStr(1, Range("A" & iCount), "_")  0 Then Range("A" & iCount).Value = _
Left(Range("A" & iCount), InStr(1, Range("A" & iCount), "_") - 1)
If InStr(1, Range("B" & iCount), "_")  0 Then Range("B" & iCount).Value = _
Left(Range("B" & iCount), InStr(1, Range("B" & iCount), "_") - 1)
Next iCount
End Sub
Servus
Anzeige
Prima
18.07.2020 14:22:23
Michael
Hallo Herbert,
das Ergebnis und die Geschwindigkeit: SUPER
Vielen Dank für Deine schöne Lösung.
Gruß
Michael
AW: Teilstring in Zellen suchen & löschen
18.07.2020 14:17:00
Gerd

range("a:c:).replace "_*", "", xlpart

Gruss Gerd, ungetestet
kurz und bündig
18.07.2020 14:27:13
Michael
Hallo Gerd,
sehr beindruckend, wir dieser kurze Code die Aufgabe löst!
Vielen Dank.
Michael
Anzeige
AW: kurz und bündig
18.07.2020 14:31:14
Daniel
Mit dem Recorder hättest du das selber rausgefunden und hättest nicht warten müssen, Bus dir das einer zeigt
nicht ganz
18.07.2020 14:54:19
Michael
aber nur fast:
Sub Makro1()
Range("A1:A22").Select
Selection.Replace What:="_*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Anzeige
Na ja ...
18.07.2020 15:07:08
lupo1
Rekorder verwenden heißt nicht nur aufzeichnen, sondern auch am Ergebnis lernen.
Vor allem, was man von den Argumenten löschen kann.
AW: nicht ganz
18.07.2020 15:29:22
Daniel
Wichtig ist, dass du rausfindest, dass der Befehl "Replacee" heißt .
Der Rest ist Basiswissen, das man immer anwenden kann:
1. Select/Selection ist unnötig , wenn man den Befehl direkt an das Objekt anhängt
2. Man muss nicht immer alle Parameter eines Befehls angeben
3. Wenn man die Parameter in der richtigen Reihenfolge angibt, darf man die Benennung weglassen (what:=; replacement:=, ...)
Mit dem Reorder kannst du viel selberrausfinden, ohne jedesmal im Forumfragen zu müsssen.
Geuß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Teilstring in Zellen suchen und löschen


Schritt-für-Schritt-Anleitung

Um in Excel einen Teilstring in Zellen zu suchen und zu löschen, kannst du sowohl Formeln als auch VBA verwenden. Hier sind die Schritte für beide Methoden:

1. Mit einer Excel-Formel:

Wenn du den Unterstrich und alles, was danach kommt, entfernen möchtest, kannst du folgende Formel verwenden:

=WENN(ISTFEHLER(FINDEN("_";A1));A1;LINKS(A1;FINDEN("_";A1)-1))

Diese Formel sucht in Zelle A1 nach dem Unterstrich. Wenn er gefunden wird, gibt sie nur den Teil des Strings vor dem Unterstrich zurück. Andernfalls bleibt der gesamte Inhalt der Zelle erhalten.

2. Mit VBA:

Wenn du in mehreren Zellen oder Spalten arbeiten möchtest, ist eine VBA-Lösung effektiver. Hier ein Beispiel:

Sub TeilStringLöschen()
    Dim iLastRow As Long
    Dim iCount As Long

    iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For iCount = 1 To iLastRow
        If InStr(1, Range("A" & iCount), "_") > 0 Then
            Range("A" & iCount).Value = Left(Range("A" & iCount), InStr(1, Range("A" & iCount), "_") - 1)
        End If
    Next iCount
End Sub

Füge diesen Code in ein neues Modul ein und führe das Makro aus, um alle Unterstriche und die folgenden Zeichen in den Zellen der Spalte A zu entfernen.


Häufige Fehler und Lösungen

  • Fehler: Formel gibt einen Fehler aus.
    Stelle sicher, dass in der Zelle ein Unterstrich vorhanden ist. Wenn nicht, wird ein Fehler ausgegeben. Die Verwendung von ISTFEHLER hilft, diesen Fehler zu vermeiden.

  • Fehler: VBA-Code funktioniert nicht.
    Überprüfe, ob du die richtige Spaltenreferenz verwendest und ob das Makro im richtigen Arbeitsblatt ausgeführt wird.


Alternative Methoden

  • Menüfunktion Ersetzen:
    Du kannst auch die Ersetzen-Funktion in Excel nutzen. Gehe zu „Start“ > „Suchen und Auswählen“ > „Ersetzen“. Setze bei „Suchen nach“ _ * (mit einem Leerzeichen nach dem Unterstrich) und lasse das Feld „Ersetzen durch“ leer. Achte darauf, dass der Haken bei „Gesamten Zellinhalt vergleichen“ nicht gesetzt ist.

  • Daten in Spalten:
    Eine weitere Methode ist, die Funktion „Text in Spalten“ zu nutzen. Gehe zu „Daten“ > „Text in Spalten“. Wähle „Getrennt“ und setze den Unterstrich als Trennzeichen. Übernehme nur die erste Spalte.


Praktische Beispiele

  1. Beispiel mit Formel:
    In Zelle A1 steht „Test_123“. Wenn du die oben genannte Formel in B1 anwendest, wird „Test“ ausgegeben.

  2. Beispiel mit VBA:
    Wenn du das VBA-Skript ausführst und in Spalte A die Werte „Test_123“, „Beispiel_456“ und „Demo_789“ stehen, wird Spalte A nach der Ausführung nur „Test“, „Beispiel“ und „Demo“ enthalten.


Tipps für Profis

  • Makrorecorder nutzen:
    Du kannst den Makrorecorder verwenden, um deine Aktionen aufzuzeichnen. Das hilft dir, die genauen VBA-Befehle zu lernen und zu verstehen.

  • Filter verwenden:
    Bevor du die Zeichen entfernst, kannst du einen Filter setzen, um nur die relevanten Daten zu sehen. So kannst du gezielt arbeiten und versehentliche Änderungen vermeiden.


FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere Zeichen aus einem String entfernen?
Antwort: Du kannst die Ersetzen-Funktion mehrmals anwenden oder ein VBA-Skript erstellen, das mehrere Ersetzungen in einer Schleife durchführt.

2. Frage
Kann ich diese Methoden auch in Excel 2013 verwenden?
Antwort: Ja, die beschriebenen Methoden sind auch in Excel 2013 verfügbar. Die Funktionalitäten sind ähnlich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige