// ultimátna časová tabuľka, v2.01 // stiahnuté z webu www.powerpivot.sk let pociatocnyRok = 2015, koncovyRok = 2021, // zadajte Date.Year(DateTime.FixedLocalNow()) pre aktuálny rok fiskalnyRokZaciatokMesiac = 3, jazyk = "sk-SK", // anglictina = en-US, cestina = cs-CZ pociatocnyDatum = #date(pociatocnyRok, 1, 1), koncovyDatum = #date(koncovyRok, 12, 31), trvanie = Duration.Days(Duration.From(koncovyDatum - pociatocnyDatum)) + 1, anoNie = if jazyk = "sk-SK" then {"áno", "nie"} else if jazyk = "cs-CZ" then {"ano", "ne"} else if jazyk = "en-US" then {"yes", "no"} else {"xxx", "xxx"}, fxWeekOfCalendar = (Data as date) as number => let Weekday = Date.DayOfWeek(Data) + 1, Part1 = Number.From(Data) - Weekday + 11, Part2 = Number.From(#date(Date.Year(Date.From(Number.From(Data) + 4 - Weekday)),1,1)), Part3 = (Part1 - Part2) / 7, Tranc = Part3 - Number.Mod(Part3, 1) in Tranc, Zdroj = List.Dates(pociatocnyDatum, trvanie, #duration(1, 0, 0, 0)), #"Konvertované na tabuľku" = Table.FromList(Zdroj, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Premenované stĺpce" = Table.RenameColumns(#"Konvertované na tabuľku",{{"Column1", "Dátum"}}), #"Zmenený typ" = Table.TransformColumnTypes(#"Premenované stĺpce",{{"Dátum", type date}}), #"Vložené ID dátumu" = Table.AddColumn(#"Zmenený typ", "ID dátumu", each Date.Year([Dátum]) * 10000 + Date.Month([Dátum]) * 100 + Date.Day([Dátum]), Int64.Type), #"Vložený rok" = Table.AddColumn(#"Vložené ID dátumu", "Rok", each Date.Year([Dátum]), Int64.Type), #"Vložený polrok" = Table.AddColumn(#"Vložený rok", "Polrok", each if Date.Month([Dátum]) < 7 then 1 else 2, Int64.Type), #"Vložený rok-polrok" = Table.AddColumn(#"Vložený polrok", "Rok-Polrok", each Text.From([Rok]) & "-H" & Text.From([Polrok]), type text), #"Vložený štvrťrok" = Table.AddColumn(#"Vložený rok-polrok", "Štvrťrok", each Date.QuarterOfYear([Dátum]), Int64.Type), #"Vložený rok-štvrťrok" = Table.AddColumn(#"Vložený štvrťrok", "Rok-Štvrťrok", each Text.From([Rok]) & "-Q" & Text.From([Štvrťrok]), type text), #"Vložený mesiac" = Table.AddColumn(#"Vložený rok-štvrťrok", "Mesiac", each Date.Month([Dátum]), Int64.Type), #"Vložený rok-mesiac" = Table.AddColumn(#"Vložený mesiac", "Rok-Mesiac", each Text.From([Rok]) & "-" & Text.PadStart(Text.From([Mesiac]), 2, "0"), type text), #"Vložený deň" = Table.AddColumn(#"Vložený rok-mesiac", "Deň", each Date.Day([Dátum]), Int64.Type), #"Vložený týždeň v roku" = Table.AddColumn(#"Vložený deň", "Týždeň", each Date.WeekOfYear([Dátum]), Int64.Type), #"Vložený týždeň ISO" = Table.AddColumn(#"Vložený týždeň v roku", "Týždeň ISO", each fxWeekOfCalendar([Dátum]), Int64.Type), #"Vložený začiatok roka" = Table.AddColumn(#"Vložený týždeň ISO", "Začiatok roka", each Date.StartOfYear([Dátum]), type date), #"Vložený koniec roka" = Table.AddColumn(#"Vložený začiatok roka", "Koniec roka", each Date.EndOfYear([Dátum]), type date), #"Vložený začiatok štvrťroka" = Table.AddColumn(#"Vložený koniec roka", "Začiatok štvrťroka", each Date.StartOfQuarter([Dátum]), type date), #"Vložený koniec štvrťroka" = Table.AddColumn(#"Vložený začiatok štvrťroka", "Koniec štvrťroka", each Date.EndOfQuarter([Dátum]), type date), #"Vložený začiatok mesiaca" = Table.AddColumn(#"Vložený koniec štvrťroka", "Začiatok mesiaca", each Date.StartOfMonth([Dátum]), type date), #"Vložený koniec mesiaca" = Table.AddColumn(#"Vložený začiatok mesiaca", "Koniec mesiaca", each Date.EndOfMonth([Dátum]), type date), #"Vložený názov mesiaca" = Table.AddColumn(#"Vložený koniec mesiaca", "Názov mesiaca", each Date.MonthName([Dátum], jazyk), type text), #"Vložené dni v mesiaci" = Table.AddColumn(#"Vložený názov mesiaca", "Dni v mesiaci", each Date.DaysInMonth([Dátum]), Int64.Type), #"Vložený začiatok týždňa" = Table.AddColumn(#"Vložené dni v mesiaci", "Začiatok týždňa", each Date.StartOfWeek([Dátum]), type date), #"Vložený koniec týždňa" = Table.AddColumn(#"Vložený začiatok týždňa", "Koniec týždňa", each Date.EndOfWeek([Dátum]), type date), #"Vložený týždeň v mesiaci" = Table.AddColumn(#"Vložený koniec týždňa", "Týždeň v mesiaci", each Date.WeekOfMonth([Dátum]), Int64.Type), #"Vložený deň v týždni" = Table.AddColumn(#"Vložený týždeň v mesiaci", "Deň v týždni", each Date.DayOfWeek([Dátum], Day.Monday) + 1, Int64.Type), #"Vložený deň v roku" = Table.AddColumn(#"Vložený deň v týždni", "Deň v roku", each Date.DayOfYear([Dátum]), Int64.Type), #"Vložený názov dňa" = Table.AddColumn(#"Vložený deň v roku", "Názov dňa", each Date.DayOfWeekName([Dátum], jazyk), type text), #"Vložený víkend" = Table.AddColumn(#"Vložený názov dňa", "Víkend", each if [Deň v týždni] >= 6 then anoNie{0} else anoNie{1}, type text), #"Vložený prestupný rok" = Table.AddColumn(#"Vložený víkend", "Prestupný rok", each if Date.IsLeapYear([Dátum]) then anoNie{0} else anoNie{1}, type text), #"Vložený UNIX timestamp" = Table.AddColumn(#"Vložený prestupný rok", "UNIX timestamp", each Duration.TotalSeconds(DateTime.From([Dátum]) - #datetime(1970, 1, 1, 0, 0, 0)), Int64.Type), #"Vložený fiškálny rok" = Table.AddColumn(#"Vložený UNIX timestamp", "Fiškálny rok", each if [Dátum] < #date(Date.Year([Dátum]), fiskalnyRokZaciatokMesiac, 1) then [Rok] else [Rok] + 1, Int64.Type), #"Vložený fiškálny mesiac" = Table.AddColumn(#"Vložený fiškálny rok", "Fiškálny mesiac", each Number.Mod([Mesiac] + 12 - fiskalnyRokZaciatokMesiac, 12) + 1, Int64.Type), #"Vložený fiškálny štvrťrok" = Table.AddColumn(#"Vložený fiškálny mesiac", "Fiškálny štvrťrok", each Number.RoundDown(([Fiškálny mesiac] - 1) / 3) + 1, Int64.Type), #"Vložený fiškálny polrok" = Table.AddColumn(#"Vložený fiškálny štvrťrok", "Fiškálny polrok", each Number.RoundDown(([Fiškálny štvrťrok] - 1) / 2, 0) + 1, Int64.Type), #"Stĺpce so zmeneným poradím" = Table.ReorderColumns(#"Vložený fiškálny polrok",{"Dátum", "ID dátumu", "Rok", "Polrok", "Rok-Polrok", "Štvrťrok", "Rok-Štvrťrok", "Mesiac", "Rok-Mesiac", "Názov mesiaca", "Deň", "Deň v týždni", "Názov dňa", "Týždeň", "Týždeň ISO", "Začiatok roka", "Koniec roka", "Začiatok štvrťroka", "Koniec štvrťroka", "Začiatok mesiaca", "Koniec mesiaca", "Dni v mesiaci", "Začiatok týždňa", "Koniec týždňa", "Týždeň v mesiaci", "Deň v roku", "Víkend", "Prestupný rok", "UNIX timestamp", "Fiškálny rok", "Fiškálny polrok", "Fiškálny štvrťrok", "Fiškálny mesiac"}), #"Pridaný index" = Table.AddIndexColumn(#"Stĺpce so zmeneným poradím", "Index", 1, 1), #"Zmenený typ1" = Table.TransformColumnTypes(#"Pridaný index",{{"Index", Int64.Type}}), #"Premenované stĺpce EN-US" = Table.RenameColumns(#"Zmenený typ1",{{"Dátum", "Date"}, {"ID dátumu", "Date ID"}, {"Rok", "Year"}, {"Polrok", "Semester"}, {"Štvrťrok", "Quarter"}, {"Mesiac", "Month"}, {"Názov mesiaca", "Month Name"}, {"Deň", "Day"}, {"Týždeň ISO", "Week Number ISO"}, {"Deň v týždni", "Day of Week"}, {"Názov dňa", "Day Name"}, {"Týždeň", "Week"}, {"Začiatok roka", "Start of Year"}, {"Koniec roka", "End of Year"}, {"Začiatok štvrťroka", "Start of Quarter"}, {"Koniec štvrťroka", "End Of Quarter"}, {"Začiatok mesiaca", "Start of Month"}, {"Koniec mesiaca", "End of Month"}, {"Dni v mesiaci", "Days in Month"}, {"Začiatok týždňa", "Start of Week"}, {"Koniec týždňa", "End of Week"}, {"Týždeň v mesiaci", "Week of Month"}, {"Deň v roku", "Day of Year"}, {"Prestupný rok", "Is Leap Year"}, {"Fiškálny rok", "Fiscal Year"}, {"Fiškálny polrok", "Fiscal Semester"}, {"Fiškálny štvrťrok", "Fiscal Quarter"}, {"Fiškálny mesiac", "Fiscal Month"}, {"Rok-Polrok", "Year-Semester"}, {"Rok-Štvrťrok", "Year-Quarter"}, {"Rok-Mesiac", "Year-Month"}, {"Víkend", "Weekend"}}), #"Premenované stĺpce CS-CZ" = Table.RenameColumns(#"Zmenený typ1",{{"Dátum", "Datum"}, {"ID dátumu", "ID datumu"}, {"Rok", "Rok"}, {"Polrok", "Pololetí"}, {"Štvrťrok", "Čtvrťletí"}, {"Mesiac", "Měsíc"}, {"Názov mesiaca", "Názov měsíce"}, {"Deň", "Den"}, {"Týždeň ISO", "Týden ISO"}, {"Deň v týždni", "Den v týdnu"}, {"Názov dňa", "Názov dne"}, {"Týždeň", "Týden"}, {"Začiatok roka", "Začátek roku"}, {"Koniec roka", "Konec roku"}, {"Začiatok štvrťroka", "Začátek čtvrťletí"}, {"Koniec štvrťroka", "Konec čtvrťletí"}, {"Začiatok mesiaca", "Začátek měsíce"}, {"Koniec mesiaca", "Konec měsíce"}, {"Dni v mesiaci", "Dny v měsíci"}, {"Začiatok týždňa", "Začátek týdne"}, {"Koniec týždňa", "Konec týdne"}, {"Týždeň v mesiaci", "Týden v měsíci"}, {"Deň v roku", "Den v roku"}, {"Prestupný rok", "Přestupní rok"}, {"Fiškálny rok", "Fiskální rok"}, {"Fiškálny polrok", "Fiskální pololetí"}, {"Fiškálny štvrťrok", "Fiskální čtvrťletí"}, {"Fiškálny mesiac", "Fiskální měsíc"}, {"Rok-Polrok", "Rok-Pololetí"}, {"Rok-Štvrťrok", "Rok-Čtvrťletí"}, {"Rok-Mesiac", "Rok-Měsíc"}, {"Víkend", "Víkend"}}), vysledok = if jazyk = "sk-SK" then #"Zmenený typ1" else if jazyk = "cs-CZ" then #"Premenované stĺpce CS-CZ" else if jazyk = "en-US" then #"Premenované stĺpce EN-US" else Error.Record("Neznámy jazyk") in vysledok