Zeittransformation in Power Query: Von herkömmlicher Zeitangabe zu dezimaler Stundenzahl

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?

  1. Text.Split([Zeitdauer], „:“)
    Trennt den Textwert der Zeitangabe an der Position des Doppelpunkts in zwei Teile:
    • {0} liefert den Stundenanteil.
    • {1} liefert den Minutenanteil.
  2. Number.From(…)
    Konvertiert die extrahierten Textwerte in numerische Werte.
  3. Minutenanteil umrechnen:
    Die Minuten werden durch 60 geteilt, um sie in den stündlichen Bruchteil umzurechnen.
  4. 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! 😊

Veröffentlicht von

Marcus Wegener

Marcus Wegener

Marcus Wegener ist Anwendungsentwickler für Business Intelligence und erstellt Lösungen, mit denen sich große Datenmengen schnell analysieren lassen. Kunden nutzen seine Lösungen, um die Vergangenheit zu analysieren, die Gegenwart zu steuern und die Zukunft zu planen, um damit mehr Erfolg zu generieren. Dabei ist seine einzigartige Kombination aus Wissen und Auffassungsgabe ein Garant für ihren Erfolg.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.