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

Forumthread: Zeichenkette mit "Trenner" aufteilen (per Formel)

Zeichenkette mit "Trenner" aufteilen (per Formel)
26.11.2017 22:22:55
Joerschi
Hallo liebes Forum,
in Zelle A1 steht z. B. "1_x_45_123_5"
Trenner ist jeweils der Unterstrich "_".
In Zelle B1 bis F1 sollen jetzt jeweils die Zeichen zwischen den Trennern stehen (und zwar unabhängig von ihrer Zeichenanzahl).
B1 wäre also die "1", C1 = "x", D1 = "45, E1 = "123" und F1 = "5"
Gesucht wird eine Formel für B1 zum Rüberziehen.
Ich vermute, die Lösung besteht aus einer Kombi von TEIL und WECHSELN, aber ich bekomme es nicht hin :-(.
Vielen Dank im Voraus für jede Hilfe!
Beste Grüße
Joerschi
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichenkette mit "Trenner" aufteilen (per Formel)
26.11.2017 22:32:25
Sepp
Hallo Joerschi,
in letzter Zeit schon oft gefragt.
In B1 und nach rechts ziehen.
=GLÄTTEN(TEIL(WECHSELN($A1;"_";WIEDERHOLEN(" ";99));SPALTE(A1)*99-98;99))
Gruß Sepp

Anzeige
Dankeschön
26.11.2017 22:39:24
Joerschi
Hallo Sepp,
vielen Dank - das war mir nicht bewusst...
Formel funktioniert natürlich. Besten Dank nochmal und viele Grüße,
Joerschi
AW: Zeichenkette mit "Trenner" aufteilen (per Formel)
26.11.2017 22:57:26
Joerschi
Hallo Sepp,
doch noch mal nachgefragt...
Ich habe eine Zeichenkette, wo die letzten 4 zu trennenden Werte nicht geteilt werden.
X_X_X_X_X_X_X_X_X_X_39_38_36_34_33_31_30_28_25_17_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_14_15_16_X_X_X_X_X_X_F24_F3_F24_F24_0_14_0_1_0_14_0_14_100_21,21_100_100_1_2_13_2
Der fünftletzte Wert ("100") wird dabei in 1 und 00 gesplittet:
Oder bei folgender Zeichenkette fehlt der letzte Wert nach dem letzten Trenner (die "2"):
X_X_X_X_X_X_X_X_X_X_34_33_31_30_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_30_31_33_X_X_X_X_X_X_F24_F58_F24_F24_0_14_0_1_0_14_0_14_100_85,82_100_100_1_2_4_2

Und bei folgender Kette wird zwischen den beiden ("100_100") - also zwischen den beiden "100" eine Leerzelle angelegt.
X_X_X_X_X_X_X_X_X_X_39_38_36_34_33_31_30_28_25_17_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_14_15_16_X_X_X_X_X_X_F24_F11_F24_F24_0_14_0_1_0_14_0_14_100_41,41_100_100_1_2_13_3

Weiter wird bei nachfolgender Kette die "45,56" als 45 und 46 in zwei aufeinanderfolgende Zellen kopiert (anstatt in einer)
10_9_8_7_6_5_4_3_2_1_35_32_29_27_26_24_23_21_17_16_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_X_1_2_3_14_15_16_X_X_X_X_X_X_F114_F128_F24_F24_0_14_0_1_0_14_0_14_62,05_45,56_100_100_10_3_12_3

Hast Du eine Idee, woran das in den vier Fehlerfällen liegen könnte?
Herzliche Grüße
Jörschi
Anzeige
AW: Zeichenkette mit "Trenner" aufteilen (per Formel)
26.11.2017 23:09:57
Sepp
Hallo Joerschi,
ja, habe ich. Deine Strings sind zu lang! Dein ursprüngliches Beispiel war ja ziemlich kurz, ist aber kein Problem.
=GLÄTTEN(TEIL(WECHSELN($A1;"_";WIEDERHOLEN(" ";299));SPALTE(A1)*299-298;299))
Gruß Sepp

Anzeige
natürlich!
27.11.2017 17:55:21
Sepp
Hallo Lupo1,
gebe die voll recht, leider war mir die Quelle nicht bekannt! Und bis zum nächsten Mal vergeß' ich sie bestimmt wieder ;-))
Gruß Sepp

Anzeige
Neben der Xl-Methode 'Text-in-Spalten', ...
27.11.2017 12:03:20
Luc:-?
…Joerschi,
bei der auch Ziffern(folgen) in echte Zahlen umgewandelt wdn (können), käme für einen solchen MischText mit analogen Mög­lich­kei­ten eigentlich nur die UDF VSplit in einer pluralen MatrixFml infrage. Mit einer Fml ala der von Sepp benutzten, die einst von Lupo kreiert wurde, wäre das nicht ohne mehr als doppelt so lange Fml wie dort gezeigt möglich.
B1:F1: {=VSplit(A1;"_";1)} wandelt die Bsp-Zeichenfolge so um (als MatrixKonstante dargestellt): {1."x".45.123.5}
Alternativ könnte man das analog auch mit der XLM-Fkt AUSWERTEN in benannter Fml (dt Notation) oder der UDF TxEval (US-Nota­tion) erreichen, wenn man den Text zuvor etwas umwandelt, bspw so:
• =AUSWERTEN("{"&WECHSELN(WECHSELN(A1;"x";"""x""");"_";".")&"}")
• =TxEval("{"&WECHSELN(WECHSELN(A1;"x";"""x""");"_";",")&"}")
Natürlich sind diese beiden Fmln genau auf das Bsp zugeschnitten. Können beliebige Texte verschiedener Länge in unbestimmter Anzahl zwischen den Ziffern stehen, müsste wohl doch auf eine zusätzliche UDF zurück­gegriffen wdn, sollte die Fml nicht längen­mäßig ausufern. Aber dann kann man auch gleich die ganz oben genannte benutzen oder wechselt "_" generell gg """.""" bzw """,""" aus, wobei "{"""& voran- und &"""}" nachgestellt wdn müssten. Dann wdn aber auch reine Ziffernfolgen Text bleiben.
Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeichenkette mit "Trenner" aufteilen in Excel


Schritt-für-Schritt-Anleitung

Um eine Zeichenkette in Excel nach einem bestimmten Trenner, wie zum Beispiel dem Unterstrich, aufzuteilen, kannst Du die folgende Formel verwenden. Diese funktioniert in Excel-Versionen, die die Funktionen TEIL, WECHSELN und GLÄTTEN unterstützen.

  1. Gehe zu Zelle B1, wo das erste Ergebnis erscheinen soll.
  2. Gib die folgende Formel ein:
=GLÄTTEN(TEIL(WECHSELN($A1;"_";WIEDERHOLEN(" ";99));SPALTE(A1)*99-98;99))
  1. Ziehe die Formel nach rechts bis zu F1, um die anderen Werte zu extrahieren.

Die Formel ersetzt die Unterstriche durch Leerzeichen und nutzt dann die TEIL-Funktion, um die einzelnen Teile der Zeichenkette zu extrahieren.


Häufige Fehler und Lösungen

  1. Problem: Zu viele Zeichen in der Zeichenkette
    • Wenn Du eine lange Zeichenkette hast, kann es sein, dass die Standardformel nicht funktioniert. In diesem Fall kannst Du die Anzahl der Leerzeichen in der WECHSELN-Funktion erhöhen. Ändere die Formel auf:
=GLÄTTEN(TEIL(WECHSELN($A1;"_";WIEDERHOLEN(" ";299));SPALTE(A1)*299-298;299))
  1. Problem: Werte werden nicht korrekt aufgeteilt

    • Überprüfe, ob der Trenner (z.B. der Unterstrich) korrekt in der Zeichenkette vorhanden ist. Wenn Du mit anderen Zeichen arbeitest, passe die Formel entsprechend an.
  2. Problem: Zahlen mit Kommas werden getrennt

    • Wenn Du eine Zeichenkette hast, die Zahlen mit Kommas enthält, wird möglicherweise die Zahl fälschlicherweise aufgeteilt. Um das zu vermeiden, musst Du sicherstellen, dass die Formel nur auf den gewünschten Trenner angewendet wird.

Alternative Methoden

Neben der Verwendung der Formel gibt es noch andere Methoden, um einen Excel-String zu teilen:

  • Text in Spalten: Nutze die Funktion „Text in Spalten“ unter dem Menü Daten. Wähle „Getrennt“ und gib den Unterstrich als Trenner an.

  • UDF (Benutzerdefinierte Funktionen): Mit einer UDF wie VSplit kannst Du komplexere Trennungen vornehmen, falls Du oft mit unterschiedlichen Trennzeichen arbeitest.


Praktische Beispiele

Angenommen, Du hast die folgende Zeichenkette in Zelle A1:

X_X_X_45_12_34_56_78

Wenn Du die Schritte aus der Schritt-für-Schritt-Anleitung befolgst, erhältst Du in den Zellen B1 bis F1:

  • B1: X
  • C1: X
  • D1: 45
  • E1: 12
  • F1: 34

Wenn Du mit einer Zeichenkette arbeitest, die das Semikolon als Trenner verwendet, musst Du die Formel anpassen, um das Semikolon zu verwenden.


Tipps für Profis

  • Verwende Named Ranges: Wenn Du häufig mit den gleichen Daten arbeitest, mache Gebrauch von benannten Bereichen, um die Formeln übersichtlicher zu gestalten.
  • Fehlerbehandlung: Nutze die Funktion WENNFEHLER, um die Handhabung von Fehlern in der Formel zu verbessern. Beispielsweise:
=WENNFEHLER(GLÄTTEN(TEIL(WECHSELN($A1;"_";WIEDERHOLEN(" ";99));SPALTE(A1)*99-98;99));"")
  • Dynamische Arrays: In neueren Versionen von Excel kannst Du dynamische Arrays nutzen, um die Ergebnisse automatisch in die benachbarten Zellen einzufügen.

FAQ: Häufige Fragen

1. Wie kann ich einen Excel-String nach mehreren Zeichen trennen?
Du kannst die WECHSELN-Funktion mehrfach verwenden, um verschiedene Trenner in der Zeichenkette zu ersetzen, bevor Du die TEIL-Funktion anwendest.

2. Funktioniert das auch mit Excel Online?
Ja, die angegebenen Formeln sollten auch in Excel Online funktionieren, solange die Funktionen unterstützt werden.

3. Was kann ich tun, wenn ich Leerzeichen zwischen den Werten habe?
Verwende die GLÄTTEN-Funktion, um überflüssige Leerzeichen zu entfernen, bevor Du die Zeichenkette aufteilst.

4. Kann ich die Formel anpassen, um nach einer bestimmten Anzahl von Zeichen zu trennen?
Ja, Du kannst die TEIL-Funktion anpassen, um die Anzahl der Zeichen, die Du extrahieren möchtest, zu ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige