Xtract: Die Differenz bzw. die Anzahl der Tage zwischen 2 gegebenen kalendarischen Daten mit Power Query berechnen lassen.
Wissensstand: Level 1 ⇒ Einsteiger in PQ, keine/kaum Erfahrung
In Excel selbst gibt es die (undokumentierte) Funktion DateDif() als Formel bzw. DateDiff() als VBA-Funktion. Diese Funktionalität in Power Query nachzubauen ist nur auf den ersten Blick ganz simpel, denn rasch stellt sich heraus, dass es nicht mit der Formel EndeDatum-StartDatum getan ist, wie es in prinzipiell Excel oder VBA ausreichen würde. „Prinzipiell”, weil bei dieser Differenz-Berechnung Tag „unterschlagen” wird, sofern Sie die Anzahl der Tage und nicht die Differenz berechnen wollen. Zur Verdeutlichung: Die Anzahl der Tage vom (beispielsweise) 1.1.2021 bis zum 2.1.2021 sind (natürlich) zwei Tage; die Differenz dieser beiden kalendarischen Daten beträgt allerdings nur einen Tag.
Wenn sie in Power Query eine in „einfache” Subtraktion der beiden kalendarischen Daten vornehmen, bekommen diese Fehlermeldung: „Expression.Error: Der Feldzugriff kann nicht auf den Typ "
Date"
angewendet werden.” . Was nichts anderes heißt, dass Daten vom Typ Datum oder Datum/Uhrzeit nicht (direkt) subtrahiert oder addiert werden können.
Der scheinbar einfachste Ausweg wäre vielleicht, dass Sie den Datentyp der beiden Felder auf Ganze Zahl ändern; dann stimmt zu mindestens das Ergebnis für die Differenztage. Im Anschluss können Sie dann selbstverständlich den Datentyp der beiden Felder mit den kalendarischen Daten auf Datum bzw. Datum/Uhrzeit zurücksetzen. Auch hier gilt natürlich die Regel, dass sie zur Berechnung der Anzahl der Tage stets den Wert 1 addieren müssen.
Deutlich einfacher, bequemer, besser ist gewiss die Möglichkeit, einen direkteren Weg zu gehen. Markieren Sie zuerst per Klick in die Übersachrift die Spalte mit dem Bis-Datum, Strg und dann die Spalte mit dem Von-Datum. Spalte hinzufügen | Datum | Tage subtrahieren und in der neuen Spalte steht die Anzahl der Differenz-Tage. Über Transformieren | Standard | Addieren können Sie bequem automatisch in jeder Zeile den Wert 1 addieren. Denken Sie daran, die Überschrift der berechneten Spalte entsprechend den Gegebenheiten anzupassen. 😎
Wenn Sie zu den „Puristen” gehören, die auch gerne einmal programmtechnisch eine Lösung erarbeiten möchten, dann geht das auch in 1 Schritt mit einer M-Funktion. In meinem Beispiel sind die Start-und Ende-Spalte mit der Überschrift Von und Bis versehen. Über Spalte hinzufügen | Benutzerdefinierte Spalte tragen Sie in den Dialog als Überschrift Anzahl Tage ein und bei Benutzerdefinierte Spaltenformel schreiben Sie in exakt dieser Schreibweise nach dem vorgegebenen =:
Duration.Days([Bis]-[Von])+1
… wobei sie das +1 am Ende der Formel selbstredend weglassen können, wenn Sie die Differenz-Tage berechnen wollen. – Und bei der Gelegenheit: Sehen Sie sich gerne einmal die weiteren M‑Funktionen zum Theme Datum und Zeit in der Hilfe an, es lohnt sich gewiss auch für Sie!
Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?
Dann würde ich mich über einen Beitrag Ihrerseits z.B. 2,00 € freuen … (← Klick mich!)