27.11.2023, 08:01 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2023, 08: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, 08:08 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2023, 08: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:
Code:
=WENNFEHLER(--TEIL($A2;FINDEN(B$1;$A2)-2;2);0)
Diese Formel kopierst du nach rechts und unten.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
27.11.2023, 09:09 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2023, 09: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)
erledigt das auch gleich in einem Zug.
Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:1 Nutzer sagt Danke an LCohen für diesen Beitrag 28 • ExcelBeginner1
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