27.11.2023, 09:01 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2023, 09:07 von schauan.)
Hallöchen,
eine Möglichkeit wäre "Text in Spalten" wobei die Daten dann in unterschiedlichen Spalten stehen. Falls Deine Version TEXTTEILEN kennt, im Prinzip mit =TEXTTEILEN(A1;" ")
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • ExcelBeginner1
27.11.2023, 09:08 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2023, 09:14 von ExcelBeginner1.)
Vielen Dank für die schnelle Antwort! Das ginge in der Tat recht einfach. Ich benötige aber einen Befehl, der in Excel Professional Plus 2021 funktioniert. Für "Textteilen" benötige ich Office 365 Inisder. Ich habe es versucht mit Daten --> Text in Spalten --> getrennt nach Leerzeichen Dadurch wird aber der Rest meines Datensatzes ebenfalls zerstückelt (die Beispieltabelle aus meiner Frage ist nur ein kleiner Auszug daraus). Und dadurch, dass die Daten dann in unterschiedlichen Spalten stehen lässt sich damit schwer weiterrechnen.
(Ich möchte als folgende Operationen mit den einzelnen Zeiten aus den Strings weiter rechnen, diese voneinander subtrahieren, mit Faktoren multiplizieren etc. Dafür möchte ich erst alle Zeitangaben in Sekunden umrechnen und das geht am einfachsten, wenn sie aufgeteilt nach Tagen / Stunden / Minuten / Sekunden in den jeweiligen Spalten aufgelistet sind)
Ergänze eine Zeile ganz oben, in der für jede Spalte der auszugebende Zeitwert benannt ist, also z. B. B1:=d, C1:=h usw. Dann fügst du folgende Formel in B2 ein:
27.11.2023, 10:09 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2023, 10:22 von LCohen.)
B1[:B7]: =--WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;"h ";":");"m ";":");"s";);"d";".1.1900") bis maximal 31d
Damit hast Du die Excel-DatumZeit. Und daraus ziehst Du dann Spalten mit KÜRZEN, STUNDE, MINUTE, SEKUNDE. ______________ B1[:E7]: =--TEIL(TEXT(WECHSELN(WECHSELN(WECHSELN(WECHSELN($A1;"h ";":");"m ";":");"s";);"d";".1.1900");"TT hh:mm:ss");SPALTE(A1)*3-2;2)
Diese Formel liefert falsche Ergebnisse, wenn z.B. die Stunden fehlen, z. B. wird "16m 25s" zu "16:25:00", also zu 16 Stunden. Bei der zweiten Formel besteht dieses Problem übrigens auch, da das gleiche Prinzip verwendet wird.
da war snb mit seinen berühmten Einzeilern schneller, trotzdem zeige ich auch mal meine Lösung. Altmodisch, aber er funktioniert.
mfg Gast 123
Code:
Sub Zeiten_aufteilen() Dim AC As Range, lz1 As Long lz1 = Cells(Rows.Count, 1).End(xlUp).Row For Each AC In Range("A1:A" & lz1) If InStr(AC, "s") Then AC.Offset(0, 4) = Replace(Right(AC, 3), "s", "") If InStr(AC, "m") Then AC.Offset(0, 3) = Mid(AC, InStr(AC, "m") - 2, 2) If InStr(AC, "h") Then AC.Offset(0, 2) = Mid(AC, InStr(AC, "h") - 2, 2) If InStr(AC, "d") Then AC.Offset(0, 1) = Replace(Left(AC, 3), "d", "") Next AC End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • ExcelBeginner1