let StartDate = #date(2013, 1, 1), EndDate = #date(2020, 12, 31), FYStartMonth = 1, DayCount = Duration.Days(Duration.From(EndDate - StartDate)), Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)), TableFromList = Table.FromList(Source, Splitter.SplitByNothing()), ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}), RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}), InsertYear = Table.AddColumn(RenamedColumns, "Year", each Date.Year([Date]),type text), InsertYearNumber = Table.AddColumn(InsertYear, "YearNumber", each Date.Year([Date]), type number), InsertQuarter = Table.AddColumn(InsertYearNumber, "QuarterOfYear", each Date.QuarterOfYear([Date])), InsertMonth = Table.AddColumn(InsertQuarter, "MonthOfYear", each Date.Month([Date])), InsertDay = Table.AddColumn(InsertMonth, "DayOfMonth", each Date.Day([Date])), InsertDayInt = Table.AddColumn(InsertDay, "DateInt", each [Year] * 10000 + [MonthOfYear] * 100 + [DayOfMonth]), InsertMonthName = Table.AddColumn(InsertDayInt, "MonthName", each Date.ToText([Date], "MMMM"), type text), InsertCalendarMonth = Table.AddColumn(InsertMonthName, "MonthInCalendar", each (try(Text.Range([MonthName],0,3)) otherwise [MonthName]) & " " & Number.ToText([Year]), type text), InsertCalendarQtr = Table.AddColumn(InsertCalendarMonth, "QuarterInCalendar", each "Q" & Number.ToText([QuarterOfYear]) & " " & Number.ToText([Year]), type text), InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "DayInWeek", each Date.DayOfWeek([Date])), InsertDayName = Table.AddColumn(InsertDayWeek, "DayOfWeekName", each Date.ToText([Date], "dddd"), type text), InsertWeekEnding = Table.AddColumn(InsertDayName, "WeekEnding", each Date.EndOfWeek([Date]), type date), InsertMonthEnding = Table.AddColumn(InsertWeekEnding, "MonthEnding", each Date.EndOfMonth([Date]), type date), // ADDED for CompletedMonth InsertWeekNumber= Table.AddColumn(InsertMonthEnding, "Week Number", each Date.WeekOfYear([Date])), InsertMonthnYear = Table.AddColumn(InsertWeekNumber,"MonthnYear", each [Year] * 10000 + [MonthOfYear] * 100), InsertQuarternYear = Table.AddColumn(InsertMonthnYear,"QuarternYear", each [Year] * 10000 + [QuarterOfYear] * 100), InsertShortYear = Table.AddColumn(InsertQuarternYear, "ShortYear", each Text.End(Text.From([Year]), 2), type text), AddFY = Table.AddColumn(InsertShortYear, "FY", each "FY"&(if FYStartMonth =1 then [ShortYear] else if [MonthOfYear]>=FYStartMonth then Text.From(Number.From([ShortYear])+1) else [ShortYear]), type text), InsertNotAfterToday = Table.AddColumn(AddFY, "NotAfterToday", each [Date] <= Date.From(DateTime.LocalNow()), type logical), InsertIsWorkingDay = Table.AddColumn(InsertNotAfterToday, "IsWorkingDay", each if [DayInWeek] = 5 then false else if [DayInWeek] = 6 then false else true, type logical), InsertWeekOffset = Table.AddColumn(InsertIsWorkingDay, "WeekOffset", each (Number.From(Date.StartOfWeek([Date]))-Number.From(Date.StartOfWeek(DateTime.LocalNow())))/7 ), InsertMonthOffset = Table.AddColumn(InsertWeekOffset, "MonthOffset", each ((12 * Date.Year([Date])) + Date.Month([Date])) - ((12 * Date.Year(Date.From(DateTime.FixedLocalNow()))) + Date.Month(Date.From(DateTime.FixedLocalNow())))), InsertQuarterOffset = Table.AddColumn(InsertMonthOffset, "QuarterOffset", each ((4 * Date.Year([Date])) + Date.QuarterOfYear([Date])) - ((4 * Date.Year(Date.From(DateTime.FixedLocalNow()))) + Date.QuarterOfYear(Date.From(DateTime.FixedLocalNow())))), InsertYearOffset = Table.AddColumn(InsertQuarterOffset, "YearOffset", each Date.Year([Date]) - Date.Year(Date.From(DateTime.FixedLocalNow())), type number), InsertCompletedWeek = Table.AddColumn(InsertYearOffset, "CompletedWeek", each [WeekEnding] < Date.From(Date.EndOfWeek(DateTime.LocalNow())), type logical), InsertCompletedMonth = Table.AddColumn(InsertCompletedWeek, "CompletedMonth", each [MonthEnding] < Date.From(Date.EndOfMonth(DateTime.LocalNow())), type logical), InsertCompletedQuarter = Table.AddColumn(InsertCompletedMonth, "CompletedQuarter", each Date.EndOfQuarter([Date]) < Date.From(Date.EndOfQuarter(DateTime.LocalNow())), type logical), WholeNumbers = Table.TransformColumnTypes(InsertCompletedQuarter,{{"QuarternYear", Int64.Type},{"Week Number", Int64.Type},{"Year", Int64.Type},{"MonthnYear", Int64.Type}, {"DateInt", Int64.Type}, {"DayOfMonth", Int64.Type}, {"MonthOfYear", Int64.Type}, {"QuarterOfYear", Int64.Type}, {"DayInWeek", Int64.Type}, {"WeekOffset", Int64.Type}, {"MonthOffset", Int64.Type}, {"QuarterOffset", Int64.Type}, {"YearOffset", Int64.Type}}), InsertCurrentMonth = Table.AddColumn(WholeNumbers,"CurrentMonth", each if Date.IsInCurrentMonth([Date]) then true else false), InsertDayOfYear = Table.AddColumn(InsertCurrentMonth,"Day Of Year", each Date.DayOfYear([Date])) in InsertDayOfYear