Clever-Excel-Forum

Normale Version: Zeichen aus Zelle auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich habe ein eigentlich triviales Problem, das ich aber trotzdem nicht hinbekomme:

Die Zelle (1 Zelle!) hat folgenden Inhalt variabler Länge (da die Zeiten in min ein- zwei oder dreistellig seine können):

Einschleusen - Umbettung: 07:40 - 09:51 (131 min); Rüstzeit Beginn/Ende: 07:45 - 08:15 (30 min); Beginn - Ende Anästhesie: 08:00 - 09:42 (102 min); Freigabe Anä - Ende OP-Maßnahme: 08:10 - 09:41 (91 min); Vorbereitung: 08:11 - 08:36 (25 min); Beginn - Ende Säule: 08:15 - 09:43 (88 min); Schnitt/OP-Beginn - Naht: 08:37 - 09:29 (52 min)


bitte nicht fragen, warum das so ist, die Tabelle wird von einem anderen Programm als CSV-Datei generiert, man kann das nicht ändern.

1. Schritt: Die Schnitt-Naht-Zeit soll ausgelesen werden, d.h. das, was ganz am ende am rechten Rand der Zelle steht.
Wie löse ich das Problem, dass alles zwischen der 5. Stelle von rechts bis zur offenen Klammer ausgelesen wird? Die Zahl kann ein- zwei- oder dreistellig sein.

2. Schritt (Luxus): kann mir jemand helfen, wie ich die Zelle aufspalte, so dass ich jede der Zeitmarken (zwischen den Semikolon) auswerten kann?


Besten Dank,

Carsten
Moin Carsten,


zuerst Schritt 2: das Zauberwort heißt Text-in-Spalten aus dem Menü Daten. Du aktivierst "getrennt" und wählst dann als Trenner das Semikolon aus. Ergebnis siehe Zeile 1
Dann kannst du alle Zeiten auslesen; Formel in die erste Zelle eingeben und nach rechts ziehen.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFG
1Einschleusen - Umbettung: 07:40 - 09:51 (131 min)Rüstzeit Beginn/Ende: 07:45 - 08:15 (30 min)Beginn - Ende Anästhesie: 08:00 - 09:42 (102 min)Freigabe Anä - Ende OP-Maßnahme: 08:10 - 09:41 (91 min)Vorbereitung: 08:11 - 08:36 (25 min)Beginn - Ende Säule: 08:15 - 09:43 (88 min)Schnitt/OP-Beginn - Naht: 08:37 - 09:29 (52 min)
207:40 - 09:5107:45 - 08:1508:00 - 09:4208:10 - 09:4108:11 - 08:3608:15 - 09:4308:37 - 09:29

ZelleFormel
A2=TEIL(A1;FINDEN(":";A1)+2;13)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Sehr gut, danke!
Das hilft schon mal weiter.
Und das andere Problemchen?
hast Du da auch einen Tipp?

Gruß, C.
Hi Carsten,

mal auf die Schnelle (sicherlich noch verbesserungswürdig - bin aber gerade "auf dem Sprung"):
Arbeitsblatt mit dem Namen 'Tabelle1'
G
1Schnitt/OP-Beginn - Naht: 08:37 - 09:29 (52 min)
208:37 - 09:29
352

ZelleFormel
G2=TEIL(G1;FINDEN(":";G1)+2;13)
G3=TEIL(G1;FINDEN(")";G1)-5-1;FINDEN(")";G1)-5-FINDEN("(";G1))
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hallo Carsten,

oder alternativ mit 2 kleinen VBA-Fkt. (s. Mappe).

Sigi
a) =--RECHTS(WECHSELN(WECHSELN(A1;" min)";);"(";"  ");3)

b) =WECHSELN(GLÄTTEN(TEIL(WECHSELN(GLÄTTEN(WECHSELN(WECHSELN(WECHSELN(A1;" ";"#");":#";" ");";";" "));" ";WIEDERHOLEN(" ";599));SPALTE(A:G)*599*2-598;599));"#";" ")

In Zeilen statt Spalten: ZEILE(1:7) statt SPALTE(A:G). In altem Excel b) als Array.

c) =GLÄTTEN(WECHSELN(GLÄTTEN(TEIL(WECHSELN(GLÄTTEN(WECHSELN(WECHSELN(A1;" ";"#");";";" "));" ";WIEDERHOLEN(" ";599));SPALTE(A:G)*599-598;599));"#";" "))

enthält zusätzlich auch das jeweilige Label, wie "Einschleusen - Umbettung:"