Datumstabelle mit Power Query erstellen



Wer regelmäßig mit Power Pivot und mehrdimensionalen Modellen arbeitet kennt die Situation:
Man benötigt eine lückenlose Datumstabelle für eine Datumsdimension, doch woher nehmen ?

Mit Power Query kann man diese sehr einfach erstellen.

Reiter Power Query -> aus anderen Datenquellen -> leere Abfrage erstellen

Im Abfrage Editor, Reiter Start (oder Ansicht), in "Erweiterter Editor" wechseln





Hier folgenden von Matt Allington entwickelten Quellcode einfügen:

let
Source = List.Dates,
InvokedSource = Source(#date(2010, 1, 1), Duration.Days(DateTime.Date(DateTime.FixedLocalNow())-#date(2010,1,1)), #duration(1, 0, 0, 0)),
TableFromList = Table.FromList(InvokedSource, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
RenamedColumns = Table.RenameColumns(TableFromList,{{"Column1", "Date"}}),
InsertedCustom = Table.AddColumn(RenamedColumns, "Year", each Date.Year([Date])),
InsertedCustom1 = Table.AddColumn(InsertedCustom, "ShortYear", each Date.Year([Date])),
InsertedCustom2 = Table.AddColumn(InsertedCustom1, "MonthNum", each Date.Month([Date])),
InsertedCustom3 = Table.AddColumn(InsertedCustom2, "Day", each Date.Day([Date])),
InsertedCustom8 = Table.TransformColumnTypes(InsertedCustom3,{{"Date", type date}}),
InsertedCustom4 = Table.AddColumn(InsertedCustom8, "DayName", each Date.ToText([Date],"ddd")),
InsertedCustom5 = Table.AddColumn(InsertedCustom4, "MonthName", each Date.ToText([Date],"MMM")),
InsertedCustom6 = Table.AddColumn(InsertedCustom5, "QuarterNumber", each Date.QuarterOfYear([Date])),
ChangedType = Table.TransformColumnTypes(InsertedCustom6,{{"ShortYear", type text}}),
SplitColumnPos = Table.SplitColumn(ChangedType,"ShortYear",Splitter.SplitTextByRepeatedLengths(2),{"ShortYear.1", "ShortYear.2"}),
ChangedType1 = Table.TransformColumnTypes(SplitColumnPos,{{"ShortYear.1", type number}, {"ShortYear.2", type number}}),
RemovedColumns = Table.RemoveColumns(ChangedType1,{"ShortYear.1"}),
RenamedColumns1 = Table.RenameColumns(RemovedColumns,{{"ShortYear.2", "ShortYear"}}),
InsertedCustom7 = Table.AddColumn(RenamedColumns1, "Quarter", each "Q"&Number.ToText([QuarterNumber])&"/"&Number.ToText([ShortYear])),
RemovedColumns1 = Table.RemoveColumns(InsertedCustom7,{"ShortYear", "QuarterNumber"})
in
RemovedColumns1



Falls die Tabelle an einem anderen Startdatum als 01.01.2010 starten soll, einfach
Datumausdruck "#date(2010, 1, 1)"
ändern.


Kommentare

Beliebte Posts aus diesem Blog

Vergleich mit 2 Bedingungen, INDEX(), VERGLEICH()

Dropdown Liste mit Mehrfachauswahl

nützliche Text Funktionen in Power Query