Heute möchte ich eine einfache, aber praktische Lösung aus einem Kundentermin mit dir teilen. Vielleicht stehst du irgendwann vor einer ähnlichen Herausforderung, und dann könnte diese Lösung dir weiterhelfen.
Die Herausforderung
Die Aufgabe bestand darin, eine Zeitdauer von der herkömmlichen Zeitangabe (z. B. 25:15) in eine dezimalisierte Stundenzahl umzuwandeln. Dezimale Stundenzahlen sind besonders nützlich, um Zeitwerte in Berechnungen wie Summen oder Mittelwerten zu aggregieren.
Der Knackpunkt: Die Zeitangabe konnte Stundenwerte über 24 Stunden enthalten. Dadurch scheiterten standardmäßige Transformationen in Power Query, da diese oft die Angabe als Zeit- oder Dauerdatentyp interpretieren, was zu Fehlern oder unbrauchbaren Ergebnissen führt.
Die Lösung
Um das Problem zu lösen, wurde die Zeitangabe zunächst in Textform behandelt und dann mithilfe von Power Query-Funktionen aufgeteilt. Der Doppelpunkt (:
) wurde als Trenner genutzt, um die Stunden und Minuten zu extrahieren. Anschließend wurden die Minuten in einen Bruchteil von Stunden umgerechnet und zu den Stunden addiert.
Der Code für die benutzerdefinierte Spalte in Power Query sieht wie folgt aus:
Number.From(Text.Split([Zeitdauer], ":"){0}) +
(Number.From(Text.Split([Zeitdauer], ":"){1}) / 60)
Wie funktioniert der Code?
- Text.Split([Zeitdauer], „:“)
Trennt den Textwert der Zeitangabe an der Position des Doppelpunkts in zwei Teile:{0}
liefert den Stundenanteil.{1}
liefert den Minutenanteil.
- Number.From(…)
Konvertiert die extrahierten Textwerte in numerische Werte. - Minutenanteil umrechnen:
Die Minuten werden durch 60 geteilt, um sie in den stündlichen Bruchteil umzurechnen. - Addieren der Werte:
Der Stundenanteil und der umgerechnete Minutenanteil werden zusammengeführt, um die dezimale Stundenzahl zu erhalten.
Anwendungsbeispiel
Angenommen, die Spalte [Zeitdauer]
enthält den Wert 25:15
, dann ergibt die Formel:
- Stunden:
25
- Minuten:
15 / 60 = 0,25
- Ergebnis:
25 + 0,25 = 25,25
Fazit
Mit diesem einfachen Ansatz kannst du Zeitangaben problemlos in dezimale Stundenzahlen umwandeln, selbst wenn sie die 24-Stunden-Marke überschreiten. Diese Lösung ist besonders hilfreich, wenn du in Power Query mit Zeitwerten arbeiten musst, die für weitere Berechnungen oder Analysen in einem maschinenfreundlichen Format vorliegen sollen.
Ich hoffe, diese kleine Lösung erleichtert dir zukünftige Herausforderungen bei der Arbeit mit Power Query! 😊