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

Text aufteilen verschiedene Bedingungen

Forumthread: Text aufteilen verschiedene Bedingungen

Text aufteilen verschiedene Bedingungen
17.04.2025 00:28:16
TPS
Hallo an alle Profis.

ich habe ein Problem mit dem Text aufteilen.

Ich habe verschiedene Einträge in meiner Liste dort sind Rohrgrössen in Zoll angegeben, manchmal eine, manchmal 2 und manchmal 3.
Ab und zu steht noch was dahinter.
Ich muss die Grössen in 3 Extra Spalten extrahieren (DN1, DN2 und DN3)
Für DN1 habe ich es schon geschafft nur für die anderen 2 habe ich es nicht hin bekommen.
Ich habe es in der Beispiel Datei extra mal farbig markiert, damit man erkennt was wo hin muss (lässt sich irgendwie schlecht erklären)
Es wäre noch gut, das wenn kein Eintrag da ist, nichts ausgegeben wird, das geht soweit ich das weiss mit Wennfehler aber wie schon gesagt klappt das bei mir nicht.

https://www.herber.de/bbs/user/176840.xlsx

Ich würde mich über Hilfe freuen.

LG
Timo
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 00:47:05
Onur
Was genau ist denn der Unterschied zwischen DN1, DN2 und DN3 ?
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 01:18:01
daniel
Hi
somit bekommst du alle Zollwerte (mit Anführungszeichen am Ende)in eine Zeile extrahiert:
diese Formel in B2 und nach unten kopiert.
Spalte C und D werden dann bei Bedarf automatisch gefüllt.

=LET(a;TEXTTEILEN(A2;" ");FILTER(a;RECHTS(a;1)=""""))


Gruß Daniel
Anzeige
Im Anhang habe...
17.04.2025 13:15:52
Case
Moin, :-)

... ich dir ein Beispiel mit "REGEXEXTRAHIEREN" erstellt: ;-)
https://www.herber.de/bbs/user/176921.xlsx

Musst du das oft machen und sind es große Datenmengen, geht das auch über Power Query. ;-)

Servus
Case
Anzeige
AW: Im Anhang habe...
17.04.2025 21:30:14
TPS
Hallo Case,

auch dir vielen Dank für deine Mühe.

Ich muss nur eins dazu schreiben, ich versuche immer etwas dazuzulernen aber es muss für mich irgendwie nachvollziehbar sein.

Ich arbeite jeden Tag mit Excel und decke das, was ich brauche, mit meinem bescheidenen wissen darüber zu 95% ab.
Für mehrere "Probleme" die ab und zu mal auftauchen habe ich mir Beispiel Dateien abgespeichert, da ich immer wieder festgestellt habe, wenn man diese Formeln/Funktionen nicht oft benutzt ist es schwer diese, ohne Fehler wieder zu erstellen.

Daniel hatte das oben mit der Let Funktion oben gut erklärt und ich denke das ich mich damit mal beschäftige.

Aber das hier:
=LET(x;A2:A13;y;MAP(x;LAMBDA(z;ANZAHL2(REGEXEXTRAHIEREN(z;"\d+(?:/\d+)?""";1))));z;MAX(y);VSTAPELN(HSTAPELN("DN"&SEQUENZ(1;z;1;1));MATRIXERSTELLEN(ZEILEN(x);z;LAMBDA(r;c;WENNFEHLER(INDEX(REGEXEXTRAHIEREN(INDEX(x;r);"\d+(?:/\d+)?""";1);c);"")))))


Das kann ich nicht mehr greifen.
Ich will das um Gottes willen nicht kritisieren, ganz im Gegenteil, nur ich bevorzuge Wege/Lösungen die ich nachvollziehen und die für mich Alltagstauglich sind.

Du fragtest ob ich das öfters machen muss, die Antwort ist ja.
Ich muss oft aus solchen Listen einzelne Teile extrahieren, nur sind die "Umstände" (also die Tabellen und Einträge) immer wieder anders.

LG
Timo





Anzeige
Du könntest doch...
18.04.2025 00:15:27
Case
Moin Timo, :-)

... bei der ersten von mir gezeigten Formel anfangen? ;-)
=REGEXEXTRAHIEREN(A2;"\d+(?:/\d+)?""";1)

Das hätte man auch so schreiben können: ;-)
=REGEXEXTRAHIEREN(A2;"[0-9]/[0-9]""";1)

Das ist jetzt einfacher zu verstehen - klappt aber nur bei genau dem Vorkommen (also in A2, A3, A4...). ;-)
Erst muss eine Zahl kommen, dann ein Slash (Schrägstrich), dann wieder eine Zahl und dann das Zollzeichen (Anführungszeichen). ;-)
Das ;1 bedeutet - gib alle Fundstellen aus. Deshalb spillt er nach rechts. :-)

Das klappt aber nicht, wenn ganze Zahlen kommen. Dann muss das Pattern angepasst werden.

Deshalb gibt es in RegEx die sogenannte "Non-capturing group". ;-)
Klingt erstmal gefährlich - ist es aber nicht. Beginnt immer mit ?: dann kommen die Zeichen die möglich sind (in unserem Fall der Slash (Schrägstrich)) und wieder eine Zahl.
"Non-capturing" heisst einfach - guck danach, aber speichere es nicht. Kommt es OK - kommt es nicht - auch OK. ;-)

RegEx ist sehr mächtig, wenn es um Stringmanipulation geht. ;-)

Das andere ist nur, damit die Formel nach rechts und unten spillt (sich ausdehnt) und wenn man keine Überschriften schreiben will. ;-)

Um deine neue Anforderung zu erfüllen, muss das Pattern nur etwas angepasst werden (gilt dann für alle Vorkommen): ;-)
=REGEXEXTRAHIEREN(A2;"(?:\d+ \d+/\d+|\d+/\d+|\d+)""";1)

Testen kannst du RegEx-Pattern immer hier: ;-)
https://regex101.com/

Servus
Case
Anzeige
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 02:23:52
TPS
Hi,

auch das Funktioniert einwandfrei und ist vom Handling ja richtig einfach.
Aber leider kann ich es nicht ganz verstehen, da muss ich noch viel nachsteuern damit ich so etwas hin bekomme.

Danke auch dir!

Gruß
Timo
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 12:22:59
daniel
Hi
naja, die Formel ist doch einfach.
Das TextTeilen teilt den Text am gegebenen Trennzeichen in mehrere Zellen auf, vergleichbar mit der Menüfunktion TEXT IN SPALTEN.
Die Funktion Filter holt dann aus diesen Zellen diejenigen heraus, die der angegebenen Bedingung entsprechen. (in diesem Fall: Endet mit Anführungzeichen)

LET ansich ist keine besondere Funktion. Sie erlaubt nur, dass man Teilformeln und Zwischenergebnissen einen Namen zuweisen kann, so dass man in der Folge dann in der Eigentlichen Formel (immer der letzte Parameter von Let) diese Namen verwenden kann anstatt der Teilformeln.
Damit wird dann die eigentliche Formel kürzer und übersichtlicher, vorallem dann, wenn die Teilformeln mehrfach verwendet werden müssen.

so auch in meinem Fall.
hier wird das TextTeilen im Filter ja zweimal benötigt, einmal für die Datenmenge (erster Parameter) und einmal für die Filterregel (zweiter Parameter)
ohne LET würde die Formel so aussehen:
=FILTER(TEXTTEILEN(A2;" ");RECHTS(TEXTTEILEN(A2;" ");1)=""""))

wie du siehst, das Textteilen kommt 2x vor, also kann man es im LET einen Namen zuweisen und diesen dann in der eigentlichen Formel verwenden.
Wenn man mit LET arbeitet, ist es immer hilfreich, nach jeder Namenszuweisung einer Teilformel eine neue Zeile zu beginnen (ALT+ENTER), das macht das ganze dann viel übersichtlicher.

=LET(

a;TEXTTEILEN(A2;" ");
FILTER(a;RECHTS(a;1)=""""))


Gruß Daniel
Anzeige
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 21:37:00
TPS
Hallo Daniel,

danke für die Erklärung, jetzt kommt es mir nicht mehr so kompliziert vor ;-)
Ich werde mich damit mal beschäftigen in der nächsten Zeit.

Mir ist nur eine Sache aufgefallen an meiner Liste, diese Art von Einträgen habe ich nur ein paar mal aber dort funktioniert deine Formel nicht.
Hatte es selber vorhin erst bemerkt das es solche Einträge gibt.

Es kann mal vorkommen das ein Eintrag so aussieht DIMENSIONAL STD. ASME B16.11 DN 1" X 1" X 1 1/2" SCH 10
also ist noch ein Leerzeichen bei der letzten Größe in diesem Fall 1 1/2"

Kann man das noch hin bekommen ohne großen Aufwand?

Gruß
Timo
Anzeige
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 22:43:37
daniel
Hi
in dem Fall muss du erstmal gesamten revanten Text extrahieren, dh ab dem DN bis zum letzten Anführungszeichen und dann diesen Teil beim "X" splitten:

=GLÄTTEN(TEXTTEILEN(TEXTVOR(TEXTNACH(A2;" DN ");"""";-1)&"""";"X"))


Gruß Daniel
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 02:19:39
TPS
Danke vielmals, funktioniert Super.

Leider habe ich mich mit der LET Funktion noch nicht beschäftigt deswegen schwer für mich das zu verstehen.

Gruß
Timo
AW: Text aufteilen verschiedene Bedingungen
17.04.2025 02:17:35
TPS
Unterschiedliche Größen
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18