Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Löschen ab drittem Sonderzeichen bis zum Komma
18.08.2023 07:55:59
Andre
Guten Morgen zusammen,
ich habe in einer Zeile mehrere Kommagetrennte Werte, die innerhalb Kommas auch nochmal mit Doppelpunkt unterteilt sind.
Ich würde gern immer ab dem dritten doppelpunkt bis zum nächsten Komma abschneiden. Hat jemand bitte einen Tipp?

Beispiel:
A:B:c:d:e,F:G:h:i:j,K:L:m:n:o

Lösung:
A:B:c,F:G:h,K:L:m

Bonus: Idealerweise würden die entfernten Elemente in einer weiteren Spalte stehen:
d:e,i:j,n:o

Danke für Hilfe!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
TEXTTEILEN TEXTVOR TEXTNACH TEXTVERKETTEN
18.08.2023 08:46:16
lupo1
=TEXTVERKETTEN(",";;TEXTVOR(TEXTTEILEN(A1;",");":";3))
=TEXTVERKETTEN(",";;TEXTNACH(TEXTTEILEN(A1;",");":";3))
AW: TEXTTEILEN TEXTVOR TEXTNACH TEXTVERKETTEN
18.08.2023 08:58:36
Andre
Danke, das funktioniert.
Allerdings bekomme ich einen Fehler, wenn es nicht mindestens 3 Doppelpunkte gibt... Ist das zu verhindern, in dem dann der ganze String genommen wird??
Ohne die Überbleibsel-Behandlung
18.08.2023 09:13:26
lupo1
=WECHSELN(TEXTVERKETTEN(",";;TEXTVOR(TEXTTEILEN(A1;",")&":0:0:0";":";3));":0";)
AW: Löschen ab drittem Sonderzeichen bis zum Komma
18.08.2023 08:50:51
Fennek
Hallo,

teste mal diesen Ansatz (Ausgabe im Debug-Fenster)


Sub S3()
Const Inp As String = "a:b:c:d:e,f:g:h:i:j:k:l,m:n:o"
Dim Hl As String, Out As String, Ar, WSF As WorksheetFunction
Set WSF = Application.WorksheetFunction

On Error Resume Next
Ar = Split(Inp, ",")
For i = 0 To UBound(Ar)
Hl = Left(Ar(i), InStr(1, WSF.Substitute(Ar(i), ":", "~", 3), "~") - 1)
If Err.Number > 0 Then Hl = Ar(i)
Out = Out & Hl & ","
Next i

Debug.Print Left(Out, Len(Out) - 1)
End Sub


mfg
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Löschen ab drittem Sonderzeichen bis zum Komma


Inhaltsverzeichnis


Die Fragestellung


Du möchtest in einer Zeichenkette, die in einer Excel-Zelle steht, alles ab dem dritten Sonderzeichen bis zum nächsten Komma löschen.


Erläuterung des Problems {#erläuterung-des-problems}


In einer Zeichenkette sollen spezifische Teile, die durch bestimmte Muster gekennzeichnet sind (hier: das dritte Sonderzeichen bis zum nächsten Komma), entfernt werden. Dies kann für die Datenbereinigung oder -formatierung erforderlich sein.


Lösung des Problems {#lösung-des-problems}


Du kannst eine benutzerdefinierte VBA-Funktion erstellen, um dieses Problem zu lösen:

Function RemoveAfterThirdSpecialCharToComma(ByVal text As String) As String
    Dim i As Integer
    Dim specialCharCount As Integer
    Dim startPos As Integer
    Dim endPos As Integer

    ' Durchlaufe die Zeichenkette Zeichen für Zeichen
    For i = 1 To Len(text)
        ' Überprüfe, ob das Zeichen ein Sonderzeichen ist
        If Not (Mid(text, i, 1) Like "[A-Za-z0-9]") Then
            specialCharCount = specialCharCount + 1
            ' Wenn das dritte Sonderzeichen gefunden wurde, merke die Position
            If specialCharCount = 3 Then
                startPos = i
                Exit For
            End If
        End If
    Next i

    ' Finde die Position des nächsten Kommas nach dem dritten Sonderzeichen
    If startPos > 0 Then
        endPos = InStr(startPos, text, ",")
        If endPos > 0 Then
            ' Entferne den Teil der Zeichenkette vom dritten Sonderzeichen bis zum Komma
            text = Left(text, startPos - 1) & Mid(text, endPos)
        End If
    End If

    RemoveAfterThirdSpecialCharToComma = text
End Function

Um diese Funktion zu verwenden, gibst du sie in ein VBA-Modul ein und verwendest sie dann in Excel wie jede andere Funktion:

=RemoveAfterThirdSpecialCharToComma(A1)

Ersetze A1 durch die Zelle, die die zu bearbeitende Zeichenkette enthält.


Anwendungsbeispiele aus der Praxis


  • Datenbereinigung: Entfernen von überflüssigen Informationen in Datensätzen.
  • Textverarbeitung: Formatieren von Texten für die weitere Verarbeitung oder Analyse.

Tipps


  • Teste die Funktion mit verschiedenen Zeichenketten, um sicherzustellen, dass sie wie erwartet funktioniert.
  • Berücksichtige, dass Sonderzeichen alles sein können, was nicht einem Buchstaben oder einer Zahl entspricht.

Verwandte Themenbereiche


  • Textfunktionen in Excel
  • VBA-Stringmanipulation
  • Benutzerdefinierte Funktionen in Excel

Zusammenfassung


Die benutzerdefinierte VBA-Funktion RemoveAfterThirdSpecialCharToComma ermöglicht es, in einer Zeichenkette alles ab dem dritten Sonderzeichen bis zum nächsten Komma zu entfernen. Dies kann für verschiedene Anwendungen in der Datenbereinigung und Textverarbeitung nützlich sein. Die Funktion kann in Excel wie jede andere Formel verwendet werden, nachdem sie in ein VBA-Modul eingefügt wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige