Text innerhalb einer Zelle finden und dann Folgezeichen ausgeben.?
Ich suche eine Möglichkeit, in EXCEL innerhalb einer Zelle nach einer Zeichenfolge zu suchen und dann die folgenden Zeichen auszugeben. Beispiel: Typ:24012 Col:00000 Thi:0203µ Gra:00009 Des:00001 Fin:00000 Len:2000 Wid:130 Des:XXXXXXXX XXXXXXXXXXguard 24012
So sieht der Zellinhalt aus. Gesucht werden soll nach Wid: und dann die folgenden 3 Zeichen ausgegeben werden. Die Anzahl der Zeichen vor Wid: kann unterschiedlich sein!
Das alles sollte ohne Makro funktionieren!
2 Antworten
Klappt es?
P.S.:
Wenn Du mit der Zahl weiter rechnen willst, dann:
=TEIL(A1;FINDEN("Wid:";A1)+4;3)*1
Gibt aber eine Fehler, wenn da keine Zahl steht, sondern Text.
Danke für die Rückmeldung.
Wenn ich Dich nicht falsch verstanden habe - und das ist unwahrscheinlich, da Deine Fragestellung sehr schön klar ist - dann sollte das klappen.
So, habe das mal getestet. Klappt im Prinzip einwandfrei. Jedoch ist die Tabelle sehr unhomogen, so dass als Ergebnis teils auch unbrauchbare Inhalte herauskommen. Nämlich dann, wenn die Zahl nach Wid: nicht exakt drei stellen hat, z.B 52,4 oder 77 (dann kommt dazu der nächste Buchstabe).
So, wie Du die Frage gestellt hast, bin ich davon ausgegangen, dass immer 3 Stellen als Zahl vorkommen.
Kann man denn davon ausgehen, dass nach der Zahl hinter Wid: immer eine Leerstelle ist?
Oder kann man davon ausgehen, dass immer "Des" folgt?
Also welche Regelmäßigkeit kann ich auswerten?
P.S.:
Oder teste mal diesen Lindwurm:
=(TEIL(A1;FINDEN("Wid:";A1)+4;1)&WENN(ODER(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+5;1)*1);TEIL(A1;FINDEN("Wid:";A1)+5;1)=",");TEIL(A1;FINDEN("Wid:";A1)+5;1);"")&WENN(ODER(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+6;1)*1);TEIL(A1;FINDEN("Wid:";A1)+6;1)=",");TEIL(A1;FINDEN("Wid:";A1)+6;1);"")&WENN(ODER(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+7;1)*1);TEIL(A1;FINDEN("Wid:";A1)+7;1)=",");TEIL(A1;FINDEN("Wid:";A1)+7;1);""))*1
Dabei gehe ich lediglich davon aus, dass direkt nach "Wid:" eine Ziffer folgt und dass der ganze Wert nicht mehr als 4 Ziffern oder 3 Ziffern plus Komma enthält.
Das lässt sich aber auch problemlos innerhalb einer Minute auf mehr mögliche Stellen erweitern. Es muss nur noch ein weiterer &-Term angehängt und geringfügig angepasst werden.
Alternativ, aber auch nicht viel schöner zu obigen Voraussetzungen (aber schon mit 5 Stellen):
=(WENN(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+4;5)*1);TEIL(A1;FINDEN("Wid:";A1)+4;5);WENN(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+4;4)*1);TEIL(A1;FINDEN("Wid:";A1)+4;4);WENN(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+4;3)*1);TEIL(A1;FINDEN("Wid:";A1)+4;3);WENN(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+4;2)*1);TEIL(A1;FINDEN("Wid:";A1)+4;2);WENN(ISTZAHL(TEIL(A1;FINDEN("Wid:";A1)+4;1)*1);TEIL(A1;FINDEN("Wid:";A1)+4;1)))))))*1
Eine andere Möglichkeit wäre:
=Wechseln(A1;"Wid:";"Wid:130";1)
Das kann auch NUR FÜR DAS ZWEITE AUFTRETEN von Wid: gemacht werden: anstatt ;1) dann ;2) schreiben. Lässt man das Argument ganz weg, werden alle Wid: ausgetauscht (=erweitert um 130)
Manchmal zweckmässiger als das umständlichere Teil -insbesondere bei Mehrfach-Auftreten, manchmal auch nicht möglich, kommt drauf an.
Wechseln unterscheidet GROSS-klein und erlaubt den Ersatz eines Großbuchstabens durch nichts (=""), so dass man über die Längendifferenz diese zählen kann und andere Spielchen.
Danke für die Antwort, aber es ging nicht darum, die Zeichenfolge "Wid:" zu ersetzen, sondern darum, die Zahl, die rechts von "Wid:" steht, auszulesen.
Auch hier leistet Wechseln wertvolle Dienste für eine Verkürzung der Formel: ich tausche das erste Des gegen ein gleich langes AAA aus und nehme dann die Längendifferenz zwischen Wid und dem verbleibenden Des:
=1*TEIL(A1;SUCHEN("Wid:";A1;1)+4;SUCHEN("Des:";WECHSELN(A1;"Des";"AAA";1);1)-SUCHEN("Wid:";A1;1)-4)
Durch die Multiplikation wird das ein Leerzeichen enthaltende Teil zu einer Zahl. Hab keine Zeit mehr, das zu verfeinern.
Kann ich jetzt noch nicht testen. Bin nicht mehr bei der Arbeit. Aber morgen früh probiere ich das gleich mal.