Tidsdimension – Power Query

Något man alltid måste ha när man skapar en Power BI-rapport är en tidsdimension. Antingen skapar man den i DAX, importerar den från en datakälla eller, som jag oftast brukar göra, skapar den med ett Power Query-skript. Nedan är ett exempel på hur ett sådant skript kan se ut.

let
    StartDate = Date.StartOfYear(Date.AddYears(Date.From(DateTime.LocalNow()),-2)),
    EndDate = Date.EndOfMonth(Date.AddYears(Date.From(DateTime.LocalNow()),0)),
    Days = Duration.Days(EndDate - StartDate)+1,

    Source= List.Dates(StartDate, Days, #duration(1,0,0,0)),

    Tid= Table.FromList(Source, Splitter.SplitByNothing(), {"Datum"}, null, ExtraValues.Error),
    #"Changed Type" = Table.TransformColumnTypes(Tid,{{"Datum", type date}}),

    År= Table.AddColumn(#"Changed Type", "År", each Date.Year([Datum])),
    Kvartal= Table.AddColumn(År, "Kvartal", each "Q" & Number.ToText(Date.QuarterOfYear([Datum]))),
    Vecka= Table.AddColumn(Kvartal, "Vecka", each Date.WeekOfYear([Datum])),
    Månad= Table.AddColumn(Vecka, "Månad", each Date.Month([Datum])),
    #"Changed Type1" = Table.TransformColumnTypes(Månad,{{"Månad", Int64.Type}, {"Vecka", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type1", "År-månad", each Number.ToText([År]) & "-" &Number.ToText([Månad],"00")),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "År-vecka", each Text.From([År]) & "-" & Text.End(Text.From([Vecka]+100),2))
in
    #"Added Custom1"