Skip to content

DAX DimCalendar

Also: DimDate, Date

Turn AutoDateTime off in PBI!

DimCalendar = 
VAR BaseCalendar =
    CALENDARAUTO()
RETURN
    GENERATE (
        BaseCalendar,
        VAR BaseDate = [Date]
        VAR YearDate = YEAR ( BaseDate )
        VAR MonthNumber = MONTH ( BaseDate )
        VAR QuarterNumber = QUARTER( BaseDate)
        VAR MonthName = FORMAT ( BaseDate, "mmm", "de-CH")
        VAR YearMonthName = FORMAT ( BaseDate, "mmm yy", "de-CH" )
        VAR YearMonthNumber = FORMAT (BaseDate, "yyyy-mm")
        VAR YearQuarterName = FORMAT( BaseDate, "yy") & "Q" & FORMAT( BaseDate, "Q")
        VAR QuarterName = "Q" & FORMAT( BaseDate, "Q")


        VAR ThursdayOfWeek = BaseDate - WEEKDAY(BaseDate, 2) + 4
        VAR WeekNum = WEEKNUM(ThursdayOfWeek, 2)
        VAR YearWeek = FORMAT( YEAR(ThursdayOfWeek), "0000") & "KW" & FORMAT(WeekNum, "00")


        RETURN ROW (
            "Year", YearDate,
            "Month Number", MonthNumber,
            "Month", MonthName,
            "Year Month Number", YearMonthNumber,
            "Year Month", YearMonthName,
            "Quarter Number", QuarterNumber,
            "Year Quarter", YearQuarterName,
            "Quarter", QuarterName,
            "KW", WeekNum,
            "Year KW", YearWeek
        )
    )