Date =
VAR FirstYear = 2020
VAR FiscalMonth = 4
VAR CalendarDays =
CALENDAR(DATE(FirstYear,1,1),TODAY())
VAR CalendarStandard =
GENERATE(CalendarDays,
VAR strDay = FORMAT([Date],"DDDD")
VAR intWeekDay = WEEKDAY([Date])
RETURN
ROW(
"DateKey",FORMAT([Date],"YYYYmmdd"),
"DayofWeek",WEEKDAY([Date]),
"WeekDay",strDay,
"DayofMonth",DAY([Date]),
"IsWeekend",SWITCH(strday,"Saturday",-1,"Sunday",-1,0),
"OrdinalDate",DATEDIFF(DATE(YEAR([Date]),1,1),[Date],DAY)+1,
"WeekStart",[Date]-intWeekDay+1,
"WeekEnding",[Date]+(7-intWeekDay),
"WeekofYear",WEEKNUM([Date]),
"MonthKey",FORMAT([Date],"YYYYMM"),
"Month",FORMAT([Date],"MMMM"),
"MonthofYear",MONTH([Date]),
"QtrofYear",ROUNDUP(MONTH([Date])/3,0)
)
)
VAR CalendarFiscal =
GENERATE(CalendarDays,
VAR ISOWeek = [Date] + (7-WEEKDAY([Date])-3)
VAR intMonth = IF(FiscalMonth > 1,FiscalMonth -1,12)
VAR intPeriod = IF(MONTH(ISOWeek)<=intMonth,MONTH(ISOWeek)+(12-intMonth),MONTH(ISOWeek)-intMonth)
VAR intYear = IF(MONTH(ISOWeek)<=intMonth,YEAR(ISOWeek),YEAR(ISOWeek)+1)
RETURN
ROW(
"FYName","FY "& IF(FiscalMonth>1,right(intYear-1,2)&"/"&right(intYear,2),intYear),
"FiscalYear",intYear,
"FiscalPeriod",intPeriod,
"FiscalQtr",ROUNDUP(intPeriod/3,0)
)
)
Var CalendarComplete =
NATURALLEFTOUTERJOIN(CalendarStandard,CalendarFiscal)
VAR Result =
SELECTCOLUMNS(CalendarComplete,
-- Base date columns
"FULLDATE", [Date],
"CALENDARYEAR",YEAR([Date]),
----DAY
"DAY_KEY",[DateKey],
"DAYOFWEEK",[DayofWeek],
"DAYNAMEOFWEEK",[WeekDay],
"DAYOFMONTH",[DayofMonth],
"DAYOFYEAR",[OrdinalDate],
----WEEK
"WEEKDAYWEEKEND",SWITCH([IsWeekend],-1,"Weekend","Weekday"),
"WEEKSTARTDATE",[WeekStart],
"WEEKOFYEAR",[WeekofYear],
----MONTH
"MONTH_KEY",[MonthKey],
"MONTHOFYEAR",[MonthofYear],
"MONTHNAME",[Month],
"CALENDARYEARMONTH",YEAR([Date])&"-"&FORMAT([MonthofYear],"00"),
----QTR
"QUARTER_KEY",(YEAR([Date])*10)+[QtrofYear],
"CALENDARYEARQUARTER",YEAR([Date])&"Q"&FORMAT([QtrofYear],"00"),
--FISCAL
"FISCALYEAR",[FiscalYear],
"FY",[FYName],
---PERIOD
"FISCALPERIOD_KEY",[FiscalYear]&FORMAT([FiscalPeriod],"00"),
"FISCALMONTH",[FiscalPeriod],
"FISCALYEARMONTH",[FiscalYear]&"-"&FORMAT([FiscalPeriod],"00"),
---QTR
"FISCALQTR_KEY",([FiscalYear]*10)+[FiscalQtr],
"FISCALQUARTER",[FiscalQtr],
"FISCALYEARQUARTER",[FiscalYear]&"Q"&[FiscalQtr]
)
Return Result
apps-filevi