PQ: Anzahl Tage bzw. Differenz berechnen

Xtract: Die Dif­ferenz bzw. die Anzahl der Tage zwis­chen 2 gegebe­nen kalen­darischen Dat­en mit Pow­er Query berech­nen lassen.

  Wis­sens­stand: Lev­el 1 ⇒ Ein­steiger in PQ, keine/kaum Erfahrung   

In Excel selb­st gibt es die (undoku­men­tierte) Funk­tion Date­Dif() als Formel bzw. Date­D­iff() als VBA-Funk­tion. Diese Funk­tion­al­ität in Pow­er Query nachzubauen ist nur auf den ersten Blick ganz sim­pel, denn rasch stellt sich her­aus, dass es nicht mit der Formel  Ende­Da­tum-Start­Da­tum getan ist, wie es in prinzip­iell Excel oder VBA aus­re­ichen würde. „Prinzip­iell”, weil bei dieser Dif­ferenz-Berech­nung  Tag „unter­schla­gen” wird, sofern Sie die Anzahl der Tage und nicht die Dif­ferenz berech­nen wollen. Zur Verdeut­lichung: Die Anzahl der Tage vom (beispiel­sweise) 1.1.2021 bis zum 2.1.2021 sind (natür­lich) zwei Tage; die Dif­ferenz dieser bei­den kalen­darischen Dat­en beträgt allerd­ings nur einen Tag.

Wenn sie in Pow­er Query eine in „ein­fache” Sub­trak­tion der bei­den kalen­darischen Dat­en vornehmen, bekom­men diese Fehler­mel­dung:  „Expression.Error: Der Feldzu­griff kann nicht auf den Typ "Date" angewen­det wer­den.” . Was nichts anderes heißt, dass Dat­en vom Typ Datum oder Datum/Uhrzeit nicht (direkt) sub­trahiert oder addiert wer­den kön­nen.

Der schein­bar ein­fach­ste Ausweg wäre vielle­icht, dass Sie den Daten­typ der bei­den Felder auf Ganze Zahl ändern; dann stimmt zu min­destens das Ergeb­nis für die Dif­feren­z­tage. Im Anschluss kön­nen Sie dann selb­stver­ständlich den Daten­typ der bei­den Felder mit den kalen­darischen Dat­en auf Datum bzw. Datum/Uhrzeit zurück­set­zen. Auch hier gilt natür­lich die Regel, dass sie zur Berech­nung der Anzahl der Tage stets den Wert 1 addieren müssen.

Deut­lich ein­fach­er, beque­mer, bess­er ist gewiss die Möglichkeit, einen direk­teren Weg zu gehen. Markieren Sie zuerst per Klick in die Über­sachrift die Spalte mit dem Bis-Datum, Strg und dann die Spalte mit dem Von-Datum. Spalte hinzufü­gen | Datum | Tage sub­trahieren und in der neuen Spalte ste­ht die Anzahl der Dif­ferenz-Tage. Über Trans­formieren | Stan­dard | Addieren kön­nen Sie bequem automa­tisch in jed­er Zeile den Wert 1 addieren. Denken Sie daran, die Über­schrift der berech­neten Spalte entsprechend den Gegeben­heit­en anzu­passen. 😎 

Wenn Sie zu den „Puris­ten” gehören, die auch gerne ein­mal pro­grammtech­nisch eine Lösung erar­beit­en möcht­en, dann geht das auch in 1 Schritt mit ein­er M-Funk­tion. In meinem Beispiel sind die Start-und Ende-Spalte mit der Über­schrift Von und Bis verse­hen. Über Spalte hinzufü­gen | Benutzerdefinierte Spalte tra­gen Sie in den Dia­log als Über­schrift  Anzahl Tage ein und bei Benutzerdefinierte Spal­tenformel schreiben Sie in exakt dieser Schreib­weise nach dem vorgegebe­nen =:
Duration.Days([Bis]-[Von])+1
… wobei sie das +1 am Ende der Formel selb­stre­dend weglassen kön­nen, wenn Sie die Dif­ferenz-Tage berech­nen wollen. – Und bei der Gele­gen­heit: Sehen Sie sich gerne ein­mal die weit­eren M‑Funktionen zum Theme Datum und Zeit in der Hil­fe an, es lohnt sich gewiss auch für Sie!

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 2,00  freuen … (← Klick mich!)

 

Dieser Beitrag wurde unter Datum & Zeit, Power Query, PQ-Quickies abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.