How to do it...

To implement this recipe, perform the following steps:

  1. Create a column in the R02_Calendar table using the following formula:
QuarterNonStandard = 
VAR __Q1StartMonth = 8 // Starting Q1 month number
VAR __Q1StartDay = 15 // Starting day number of Q1
VAR __Q2StartMonth = 11 // Starting Q2 month number
VAR __Q2StartDay = 15 // Starting day number of Q2
VAR __Q3StartMonth = 2 // Starting Q3 month number
VAR __Q3StartDay = 15 // Starting day number of Q3
VAR __Q4StartMonth = 5 // Starting Q4 month number
VAR __Q4StartDay = 15 // Starting day number of Q4
VAR __Year = YEAR('R02_Calendar'[Date])
VAR __date = 'R02_Calendar'[Date]
//
// Do not modify below this line
//
VAR __QuarterMonths =
{ __Q1StartMonth,
__Q2StartMonth,
__Q3StartMonth,
__Q4StartMonth
}
VAR __MaxQuarterStartMonth = MAXX(__QuarterMonths,[Value])
VAR __Quarter =
SWITCH(
TRUE(),
__Q1StartMonth = __MaxQuarterStartMonth &&
(
__date >= DATE(__Year,__Q1StartMonth,__Q1StartDay) ||
__date < DATE(__Year,__Q2StartMonth,__Q2StartDay)
),"Q1",
__Q2StartMonth = __MaxQuarterStartMonth &&
(
__date >= DATE(__Year,__Q2StartMonth,__Q2StartDay) ||
__date < DATE(__Year,__Q3StartMonth,__Q3StartDay)
),"Q2",
__Q3StartMonth = __MaxQuarterStartMonth &&
(
__date >= DATE(__Year,__Q3StartMonth,__Q3StartDay) ||
__date < DATE(__Year,__Q4StartMonth,__Q4StartDay)
),"Q3",
__Q4StartMonth = __MaxQuarterStartMonth &&
(
__date >= DATE(__Year,__Q4StartMonth,__Q4StartDay) ||
__date < DATE(__Year,__Q1StartMonth,__Q1StartDay)
),"Q4",
__date >= DATE(__Year,__Q1StartMonth,__Q1StartDay) &&
__date < DATE(__Year,__Q2StartMonth,__Q2StartDay),"Q1",
__date >= DATE(__Year,__Q2StartMonth,__Q2StartDay) &&
__date < DATE(__Year,__Q3StartMonth,__Q3StartDay),"Q2",
__date >= DATE(__Year,__Q3StartMonth,__Q3StartDay) &&
__date < DATE(__Year,__Q4StartMonth,__Q4StartDay),"Q3",
__date >= DATE(__Year,__Q4StartMonth,__Q4StartDay) &&
__date < DATE(__Year,__Q1StartMonth,__Q1StartDay),"Q4",
"Error"
)
RETURN __Quarter