Clever-Excel-Forum

Normale Version: Formel für Teile eines Strings
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Miteinander,

ich stehe vor einer sehr komplexen Aufgabe: Aus einem sehr umfassenden String benötige ich unterschiedlichste Informationen. Anbei ein Screenshot. Von diesen Strings habe ich insgesamt mehrere Tausend, bei denen ich die in fett markierten Informationen sauber trennen muss. Habt ihr ne Idee, welche Formeln ich anwenden muss?

LG Felix[attachment=8907]
Hallo Felix,

die hinteren Spalten müsten über Textfunktionen ermittelbar sein, da die Werte im Text hinter der Kennung mit "=" und "&" eingeschlossen sind.
Aber gibt es auch eine Regel das Produkt zu ermitteln?
Wenn ja, beschreibe sie einmal und stelle eine Datei mit einigen Beispieldaten zur Verfügung.
Hi Ego,

bei Produkt kann entweder "1w", "tv" oder "im" stehen. Eine Frage zu den Textfunktionen. Wie würden diese denn aussehen? Anbei mal das Blatt.

LG Felix
Hallo,

Vielleicht passt das ja:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFG
1 ProductCampaigndytidgmailfn
2x,,,AX47a7e547b1854599972baa3bb8ef7e45,1x-SEMFB-ms_root,false,,"Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G920F/G920FX Build/MMB29K) AppleWebKit/597.76 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome Mobile

Safari/537.36",2,1w,de,cGF0cmljaWEuc0BnbWFpbC5jb20(,UGF0cmljaWE?utm_campaign=de1sd01&dytid=Asdfsd7b1854599972baa3bb8ef7e45&g=w&mail=test123&fn=testermann
1wde1sd01Asdfsd7b1854599972baa3bb8ef7e45wtest123testermann

ZelleFormel
B2=TEIL(A2;SUCHEN("#";WECHSELN(A2;",";"#";10))+1;SUCHEN("#";WECHSELN(A2;",";"#";11))-SUCHEN("#";WECHSELN(A2;",";"#";10))-1)
C2=LINKS(TEIL(A2;SUCHEN("gn=";A2)+3;99);SUCHEN("&";TEIL(A2;SUCHEN("gn=";A2)+3;99))-1)
D2=LINKS(TEIL(A2;SUCHEN("tid=";A2)+4;99);SUCHEN("&";TEIL(A2;SUCHEN("tid=";A2)+4;99))-1)
E2=LINKS(TEIL(A2;SUCHEN("&g=";A2)+3;99);SUCHEN("&";TEIL(A2;SUCHEN("&g=";A2)+3;99))-1)
F2=LINKS(TEIL(A2;SUCHEN("mail=";A2)+5;99);SUCHEN("&";TEIL(A2;SUCHEN("mail=";A2)+5;99))-1)
G2=LINKS(TEIL(A2;SUCHEN("fn=";A2)+3;99);99)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg


für Product noch das:

=WENNFEHLER(TEIL(A2;WENNFEHLER(SUCHEN(",1w,";A2);WENNFEHLER(SUCHEN(",im,";A2;A2);SUCHEN(",tv,";A2)))+1;2);"--")
Hallo Felix,

in Formeln ist der Opa einfach unschlagbar. Hatte mich nur gewundert, warum er noch nicht geantwortet hatte.

Wenn "fn" nicht immer das letzte Schlüsselwort ist, müsten die Formeln noch leicht überarbeitet werden.
Hi,

Zitat:Hatte mich nur gewundert, warum er noch nicht geantwortet hatte.

ich darf ab und zu auch mal arbeiten.

Wenn fn nicht den Schluß bildet:

=LINKS(TEIL(A2;SUCHEN("fn=";A2)+3;99);SUCHEN("&";TEIL(A2&"&";SUCHEN("fn=";A2)+3;99))-1)
Hallo Felix,

anbei deine Beispieldatei mit einer Makro Lösung zurück.  Und herzliche Grüsse an Opa Edgar. Da können sich zwei Opas die Hand geben.

Formel Lösungen sind sicher sinnvoll, haben leider aber auch einen Nachteil.  Bei grossen Mengen können sie den PC langsam machen. Bei einem Makro gibt es diesenNachteil nicht. Das berechnet einmal die Sache, dann ist Ruhe!  Dafür muss die Datei als .xlsm gspeichert werden. Will man das vermeiden kannst du das zerlegen von Originaldaten auch in der Beispiel ausführen lassen, und kopierst die fertige Tabelle in deine Originaldatei.

Schön das es jetzt mehrere Lösungen gibt, dann hat man die freie Auswahl

mfg  Gast 123
Hallo,


Zitat:Bei grossen Mengen können sie den PC langsam machen

Das kann man so nicht sagen. Es gibt Formeln, die nur geringen Einfluß auf die Geschwindigkeit haben, andere dafür umso mehr.
VBA-Lösungen sind in sehr vielen Fällen deutlich langsamer als Formeln.
Zudem ist es in vielen Fällen einfacher, eine Formel zu erstellen, als ein VBA-Konstrukt zu entwerfen.
Eine Formel wird geschrieben und rechnet. VBA muß ich erst einmal anstoßen.
Es gibt zwar Leute wie snb, die in einem Einzeiler das abarbeiten, wofür andere eine halbe Seite Makro brauchen, aber da sind dann auch sehr häufig Excel-Funktionen in der VBA-Version im Einsatz.
Hallo BoskoBiati,

weltklasse, so klappt es!!! Und auch dem Rest danke. War meine erste Frage hier. Vielen dank für eure Hilfe.

LG Felix