Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlen aus Textzelle auslesen

Zahlen aus Textzelle auslesen
Heike
Guten Tag an die Excel-Profis,
nach erfolgloser Recherche und vergeblichen Tests von Formeln (siehe Datei) aus diesem Forum und auch anderen Excel-Tipps-Seiten, bitte ich um Eure Hilfe.
Aus einer Spalte mit ca. 2000 Materialnummern, die aus Text-Zahlen-Zeichenkombinationen bestehen, müssen die Dicke und die Breite extrahiert werden. Als Beispiel (siehe hochgeladene Datei):
https://www.herber.de/bbs/user/69184.xls
Als Beispiel für dieses Beitragsfenster:
Materialnummern in Spalte A:
AA 012302200/04103-1,5X682-S355MC
AB-012300103-06,00x0370,0x2150-58 CRV 4
In Spalte B soll die Zahl vor dem ersten "x" stehen:
1,5
6
In Spalte C soll die Zahl nach dem ersten "x" stehen:
682
370
Mit den bisher gefundenen Formeln bin ich gescheitert. Wer kann mir bitte helfen?
Wenn es nicht mehr mit Formeln zu lösen ist, bin ich auch VBA-Lösungen gegenüber aufgeschlossen.
Vielen Dank.
Viele Grüße
Heike

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
mit Hilfsspalte(n)
21.04.2010 20:22:08
Erich
Hallo Heike,
mit ein oder zwei Hilfsspalten und den Formeln von
http://www.excelformeln.de/formeln.html?welcher=100 usw. gehts einfacher:
 ABCDEFG
3AA 012319310-0,3X240-C 75 S0,3240AA 012319310-0,3240-C 75 S0,3240
4AA 012302200/04103-1,5X682-S355MC1,5682AA 012302200/04103-1,5682-S355MC1,5682
5AB-012303701-06,00x1250,0x2500-16 MNCR 561250AB-012303701-06,001250,0x2500-16 MNCR 561250
6AA-012311410-05,00x0272,0-16 MNCR 55272AA-012311410-05,000272,0-16 MNCR 55272
7AB-012300103-06,00x0370,0x2150-58 CRV 46370AB-012300103-06,000370,0x2150-58 CRV 46370

Formeln der Tabelle
ZelleFormel
D3=LINKS(A3;SUCHEN("x";A3)-1)
E3=TEIL(A3;LÄNGE(D3)+2;999)
F3=ABS(VERWEIS(9^9;--RECHTS(D3;SPALTE(1:1))))
G3=VERWEIS(9^9;--LINKS(E3;SPALTE(1:1)))

ABS() habe ich wegen der Minuszeichen geschrieben - negative Werte kommen ja wohl nicht vor.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: mit Hilfsspalte(n)
22.04.2010 17:35:27
Heike
Hallo lieber Erich,
leider bin ich erst jetzt dazu gekommen, Deine Lösung zu testen.
Du hast recht: Minuswerte kommen nicht vor, aber diese verdammten Materialnummern sind alles andere als konsistent.
Die Formel in Spalte G passt perfekt. Da stimmt alles. Und in der Spalte F stimmt es bei den von mir angegebenen Beipielen auch, bis ich weiter unten in Zeile 152 folgende Materialnummern und noch weitere desselben Typs sehen musste:
AA 012311410-6X200-16MnCr5
Hier gibt die Formel bei der Dicke den Wert 40339 anstelle der 6 aus.
Leider bin ich nicht so der perfekte Formelversteher und ich bewundere Menschen so wie Euch in diesem Forum, wie Ihr so etwas zustande bringt (vor allem um welche Uhrzeit noch). Ich vermute nur, dass bei den in der Beispieltabelle angegebenen Werten alle mit Kommawerten in der Materialnummer versteckt sind und nun tauchen welche ohne Komma auf, die ich in meiner Beispieldatei nicht eingetragen habe, weil sie außerhalb meines Blickfelds lagen. Dafür möchte ich mich entschuldigen.
Nun habe ich gerade noch die beiden anderen Vorschläge getestet. Auch bei der anderen Formellösung hängt es bei der Dicke in den Zeilen ohne Kommawerte. Die VBA-Lösung funktioniert wunderbar.
Gerne möchte ich mich für Deine Mühe bedanken. Ich denke ich habe wieder etwas gelernt.
Viele Grüße
Heike
Anzeige
mit WECHSELN kein Datum mehr
22.04.2010 18:17:41
Erich
Hallo Heike,
das ist ein netter Scherz!. Mit dem Minus interpretiert die Formel in Spalte F den Wert als Datum,
hier im Beispiel im Standardformat 40339 für den 10.06.2010.
Das soll sicher nicht sein, deshalb hier neue Formeln in F3:G3 :
 DEFG
3AA 012319310-0,3240-C 75 S0,3240
4AA 012302200/04103-1,5682-S355MC1,5682
5AB-012300103-06,000370,0x2150-58 CRV 46370
6AA 012311410-6200-16MnCr56200
710-620-1620
810-620-14033940198
910-620-110.06.201020.01.2010

Formeln der Tabelle
ZelleFormel
D3=LINKS(A3;SUCHEN("x";A3)-1)
E3=TEIL(A3;LÄNGE(D3)+2;999)
F3=ABS(VERWEIS(9^9;--RECHTS(WECHSELN(D3;"-";"x"); SPALTE(3:3))))
G3=VERWEIS(9^9;--LINKS(WECHSELN(E3;"-";"x"); SPALTE(3:3)))
F8=ABS(VERWEIS(9^9;--RECHTS(D8;SPALTE(8:8))))
G8=VERWEIS(9^9;--LINKS(E8;SPALTE(8:8)))

In den Zeilen 8 und 9 stehen noch die alten Formeln - da sieht man, was passiert.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: mit WECHSELN kein Datum mehr
22.04.2010 19:25:41
Heike
Hallo Erich,
das ist ja der absolute Wahnsinn.
Nun passt es tatsächlich wunderbar. Ich bin echt sprachlos!!!
Vielen herzlichen Dank!
Liebe Grüße
Heike
AW: Zahlen aus Textzelle auslesen
21.04.2010 20:31:40
jockel
hi Heike, meinst du so?
Tabelle1 (2)
 ABC
2MaterialnummerDickeBreite
3AA 012319310-0,3X240-C 75 S0,3240
4AA 012302200/04103-1,5X682-S355MC1,5682
5AB-012303701-06,00x1250,0x2500-16 MNCR 561250
6AA-012311410-05,00x0272,0-16 MNCR 55272
7AB-012300103-06,00x0370,0x2150-58 CRV 46370
8AA-012300103-02,35x0220,0-58 CRV 42,35220
9AB-012301005-02,30x0390,0x2100-C 102,3390
10     
11     

verwendete Formeln
Zelle Formel Bereich
B3 {=WENN(A3="";"";--TEIL(A3;SUCHEN(",";A3)-1;SUCHEN("x";A3)+1-SUCHEN(",";A3)))}
C3 {=WENN(A3="";"";WENN(ISTFEHL(--TEIL(A3;SUCHEN("X";A3)+1;MAX((TEIL(A3;ZEILE(A:A);1)="-")*ZEILE(A:A))-1-SUCHEN("X";A3)));--TEIL(A3;SUCHEN("X";A3)+1;MAX((TEIL(A3;ZEILE(A:A);1)="x")*ZEILE(A:A))-1-SUCHEN("X";A3));--TEIL(A3;SUCHEN("X";A3)+1;MAX((TEIL(A3;ZEILE(A:A);1)="-")*ZEILE(A:A))-1-SUCHEN("X";A3))))}
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren Version 5.21


cu jörg
ein feedback wär ganz reizend
Anzeige
AW: Zahlen aus Textzelle auslesen
22.04.2010 17:54:19
Heike
Hallo lieber Jörg,
wow, was muss man gelernt haben, um auf so eine Lösung zu kommen?
Die Formel in C3 passt perfekt. Mein PC hat allerdings eine ganze Weile gebraucht, bis die Formeln bis ganz nach unten durchgerechnet waren.
Leider habe ich weiter unten in der Tabelle auch Materialnummern, bei denen die integrierten Werte der Dicke ohne Komma drinstehen. Dort erhalte ich als Ergebnis den Fehler #WERT!. Leider habe ich diesen Umstand in meiner Beispieltabelle nicht untergebracht, weil ich es vorher nicht gesehen habe. Entschuldige bitte.
Mit der VBA-Funktionslösung funktioniert die Sache, daher sind keine weiteren Aktionen nötig.
Auf jeden Fall hast Du meine Bewunderung und ich möchte mich herzlich bedanken. Es wird mir wahrscheinlich immer ein Rätsel bleiben, wie man auf solche Formeln kommt. Echt genial.
Viele Grüße
Heike
Anzeige
AW: Zahlen aus Textzelle auslesen
21.04.2010 20:41:18
Daniel
Hi
ich würde mir dafür eine kleine benutzerdefinierte Funktion schreiben, eine für die Dicke und eine für die Breite:
da sind zuviele Varianten und nebenbedingungen drin, um das mit Formeln einfach zu beschreiben, über VBA gehts einfacher:
Function Breite(Wert As String) As Double
Dim Pos1 As Long, Pos2 As Long, Pos3 As Long
Wert = LCase(Wert)
Pos1 = InStr(Pos1 + 1, Wert, "x")
Pos2 = InStr(Pos1 + 1, Wert, "x") - 1
Pos3 = InStr(Pos1 + 1, Wert, "-") - 1
If Pos2 = -1 Then Pos2 = 9999
If Pos3 = -1 Then Pos3 = 9999
Pos2 = WorksheetFunction.Min(Pos2, Pos3)
Breite = Val(Replace(Mid$(Wert, Pos1 + 1, Pos2 - Pos1), ",", "."))
End Function
Function Dicke(Wert As String) As Double
Dim Pos1 As Long, Pos2 As Long
Wert = LCase(Wert)
Pos1 = InStr(4, Wert, "-")
Pos2 = InStr(Pos1 + 1, Wert, "x") - 1
Dicke = Val(Replace(Mid$(Wert, Pos1 + 1, Pos2 - Pos1), ",", "."))
End Function
im Excelblatt dann einfach die Funktionen:
=Dicke(A3) und =Breite(A3)
verwenden.
Gruß, Daniel
Anzeige
AW: Zahlen aus Textzelle auslesen
22.04.2010 18:09:34
Heike
Hallo Daniel,
hach, könnte ich das doch auch... Seufz!
Die Funktionen funktionieren perfekt.
Herzlichen Dank dafür.
Viele sonnige Grüße
Heike

403 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige