To get “Year To Date” and “Last year to date” in DAX is really simple. You can use the function TotalYTD and mix this with DATESBETWEEN or SAMEPERIODLASTYEAR.
This is an example with DATESBETWEEN
DEFINE
MEASURE 'Internet Sales'[Previous Year To Date] =
CALCULATE (
TOTALYTD (
'Internet Sales'[Internet Total Sales],
DATESBETWEEN (
'Date'[Date],
FIRSTDATE ( DATEADD ( 'Date'[Date], -12, MONTH ) ),
LASTDATE ( DATEADD ( 'Date'[Date], -12, MONTH ) )
)
)
)
MEASURE 'Internet Sales'[Year To Date] =
CALCULATE (
TOTALYTD (
'Internet Sales'[Internet Total Sales],
'Date'[Date]
)
)
MEASURE 'Internet Sales'[Change] =
FORMAT (
'Internet Sales'[Year To Date]
/ 'Internet Sales'[Previous Year To Date],
"Percent"
)
EVALUATE
FILTER (
SUMMARIZE (
'Date',
'Date'[Date],
"Previous Year To Date", 'Internet Sales'[Previous Year To Date],
"Sales Year To Date", 'Internet Sales'[Year To Date],
"Change", 'Internet Sales'[Change]
),
'Date'[Date] = DATE ( 2007, 01, 15 )
)
And this is an example with SAMEPERIODLASTYEAR
DEFINE
MEASURE 'Internet Sales'[Previous Year To Date] =
CALCULATE (
TOTALYTD (
'Internet Sales'[Internet Total Sales],
SAMEPERIODLASTYEAR ( 'Date'[Date] )
)
)
MEASURE 'Internet Sales'[Year To Date] =
CALCULATE (
TOTALYTD (
'Internet Sales'[Internet Total Sales],
'Date'[Date]
)
)
MEASURE 'Internet Sales'[Change] =
FORMAT (
'Internet Sales'[Year To Date]
/ 'Internet Sales'[Previous Year To Date],
"Percent"
)
EVALUATE
FILTER (
SUMMARIZE (
'Date',
'Date'[Date],
"Previous Year To Date", 'Internet Sales'[Previous Year To Date],
"Sales Year To Date", 'Internet Sales'[Year To Date],
"Change", 'Internet Sales'[Change]
),
'Date'[Date] = DATE ( 2007, 01, 15 )
)