Power Query, Datumsfunktionen
Lern Video
USA := Beginn 1. Kalenderwoche immer mit 1. Januar.
Deutschsprachigen Raum := ISO-Kalenderwoche üblich.
Woche 1 = Woche im Jahr, die den ersten Donnerstag des Jahres enthält.
Unterschiedliche Systematiken für die Zuordnung der Kalenderwochen zu einem Kalendermonat
- 4-5-4 Methode, Gemeinjahr (Nicht-Schaltjahr) = 4 gleichlange Quartale. Jedes Quartal besteht aus drei Monaten, von denen der erste 28 Tage („4“ Wochen), der zweite 35 Tage („5“ Wochen) und der dritte wieder 28 Tage („4“ Wochen) umfasst.
- 5-4-4 Methode, Gemeinjahr (Nicht-Schaltjahr) = 4 gleichlange Quartale. Jedes Quartal besteht aus drei Monaten, von denen der erste 35 Tage („5“ Wochen), der zweite 28 Tage („4“ Wochen) und der dritte wieder 28 Tage („4“ Wochen) umfasst.
- 13-Monate-Kalender-Methode, Annahme = Monate beinhalten exakt 4 Wochen (28 Tage).
Datumsbezogene Funktionen, welche Texte zurückgeben
Date.DayOfWeekName([Datum], culture)
Datum formatieren
Date.ToText()
Date.ToText()
Beispiele
Date.ToText( #date( 2024, 5, 31 ), [ Format = "yyyy.MM" ] ) oder
Date.ToText( #date( 2024, 5, 31 ), "yyyy.MM" )
Ergebnis 2024.05
Date.ToText( #date( 2024, 5, 31 ), [ Format = "yyyy.MM" ] ) oder
Date.ToText( #date( 2024, 5, 31 ), "yyyy.MM" )
Ergebnis 2024.05
Kalenderjahresbezug siehe Custom M Funktion GetTableOfDateAndDateTime
Tagesbasierte Kalkulationen
- Volle Datumsbezeichnung := Date.ToText([Datum], "dd. MMMM yyyy", culture)
- Name des Tages := Date.DayOfWeekName([Datum], culture)
Ermittlung, ob Arbeitstag oder Wochenende
if (Date.DayOfWeek([Datum], Day.Monday) + 1) < 6 then "AT" else "WE"
Tag in der Kalenderwoche (nicht ISO-Kalenderwoche)
Date.DayOfWeek([Datum], Day.Monday) + 1
Tag im Kalendermonat := Date.Day([Datum])
Tag im Kalenderjahr := Date.DayOfYear([Datum])
Wochenbasierte Kalkulationen
Kalenderwoche im Jahr (nicht ISO-Kalenderwoche) := Date.WeekOfYear([Datum])
ISO-Kalenderwochennummer
--- SCHNIPP
(MyDate as date) =>
//Source --> https://blogs.office.com/en-us/2009/06/30/week-numbers-in-excel/
let
//MyDate = #date(2016,1,3),
Part1 = Number.From(MyDate) - Number.From(#date(Date.Year(Date.From(Number.From(MyDate) - (Date.DayOfWeek(Date.AddDays(MyDate,-1), Day.Sunday) + 1) + 4)),1,3)),
Part2 = Date.DayOfWeek(#date(Date.Year(Date.From(Number.From(MyDate) - (Date.DayOfWeek(Date.AddDays(MyDate,-1), Day.Sunday) +1) + 4)),1,3), Day.Sunday)+1 + 5,
ISOWeekNumber = Number.IntegerDivide(Part1 + Part2, 7)
in
ISOWeekNumber
--- SCHNAPP
ISO-Kalenderwochenbezeichnung
--- SCHNIPP
(MyDate as date) =>
//Source --> https://blogs.office.com/en-us/2009/06/30/week-numbers-in-excel/
let
//MyDate = #date(2016,1,3),
Part1 = Number.From(MyDate) - Number.From(#date(Date.Year(Date.From(Number.From(MyDate) - (Date.DayOfWeek(Date.AddDays(MyDate,-1), Day.Sunday) + 1) + 4)),1,3)),
Part2 = Date.DayOfWeek(#date(Date.Year(Date.From(Number.From(MyDate) - (Date.DayOfWeek(Date.AddDays(MyDate,-1), Day.Sunday) +1) + 4)),1,3), Day.Sunday)+1 + 5,
ISOWeekNumber = "ISO KW "& Text.From(Number.IntegerDivide(Part1 + Part2, 7))
in
ISOWeekNumber
--- SCHNAPP
Monatsbasierte Kalkulationen
Monatsnummer im Kalenderjahr := Date.Month([Datum])
Name des Monats := Date.MonthName([Datum], culture)
Quartalsbasierte Kalkulationen
Quartal im Kalenderjahr := Date.QuarterOfYear([Datum])
Name des Quartals im Kalenderjahr := "Q"&Number.ToText(Date.QuarterOfYear([Datum]))
Halbjahresbasierte Kalkulationen
Halbjahr im Kalenderjahr := Number.RoundUp(Date.Month([Datum])/6,0)
Name des Halbjahres im Kalenderjahr := "HJ"&Number.ToText(Number.RoundUp(Date.Month([Datum])/6,0))
Jahresbasierte Kalkulationen
Kalenderjahr := Date.Year([Datum])
Ermittlung von Schaltjahren := Date.IsLeapYear([Datum])
Monate, Wochen oder Tage zu einem Datum hinzufügen
Jahre zu einem Datum hinzufügen := Date.AddYears([Datum],AnzahlJahre)
Beispiel [Datum] := 12.08.2018, Anzahl Jahre := 1
Date.AddYears([Datum],1) := 12.08.2018
Monate zu einem Datum hinzufügen := Date.AddMonths([Datum],AnzahlMonate)
Beispiel [Datum] := 12.08.2018, Anzahl Monate := 12
Date.AddMonths([Datum],12) := 12.08.2019
Wochen zu einem Datum hinzufügen := Date.AddWeeks([Datum],AnzahlWochen)
Beispiel [Datum] := 12.08.2018, Anzahl Wochen := 52
Date.AddWeeks([Datum],52) := 11.08.2019
Tage zu einem Datum hinzufügen := Date.AddDays([Datum],AnzahlTage)
Beispiel [Datum] := 12.08.2018, Anzahl Tage := 12
Date.AddDays([Datum],12) := 26.08.2019
Vorjahr zu einem Datum
Date.AddYears([Datum],-1)
Vormonat (previous month) zu einem Datum
Date.AddMonths([Datum],-1)
siehe auch Geschäftsjahr und -quartal
Monate, Wochen oder Tage zu einem Datum hinzufügen
Jahre zu einem Datum hinzufügen := Date.AddYears([Datum],AnzahlJahre)
Beispiel [Datum] := 12.08.2018, Anzahl Jahre := 1
Date.AddYears([Datum],1) := 12.08.2018
Monate zu einem Datum hinzufügen := Date.AddMonths([Datum],AnzahlMonate)
Beispiel [Datum] := 12.08.2018, Anzahl Monate := 12
Date.AddMonths([Datum],12) := 12.08.2019
Wochen zu einem Datum hinzufügen := Date.AddWeeks([Datum],AnzahlWochen)
Beispiel [Datum] := 12.08.2018, Anzahl Wochen := 52
Date.AddWeeks([Datum],52) := 11.08.2019
Tage zu einem Datum hinzufügen := Date.AddDays([Datum],AnzahlTage)
Beispiel [Datum] := 12.08.2018, Anzahl Tage := 12
Date.AddDays([Datum],12) := 26.08.2019
Vorjahr zu einem Datum
Date.AddYears([Datum],-1)
Vormonat (previous month) zu einem Datum
Date.AddMonths([Datum],-1)
siehe auch Geschäftsjahr und -quartal
Kommentare
Kommentar veröffentlichen