An analytics engineer wants a single DAX query that returns total sales by region, but restricted to a specific year, without changing any underlying measure. They intend to apply the year restriction as a filter argument inside the grouping function itself so the filter is part of the query rather than baked into the model. Which expression correctly limits the SUMMARIZECOLUMNS result to the year 2025?
EVALUATE
SUMMARIZECOLUMNS(
'Region'[RegionName],
<filter argument>,
"Total Sales", [Sales Amount]
)- AALL('Date'[CalendarYear]) as the filter argument, so the function clears any year context and then reports sales across every available calendar year.
- BVALUES('Date'[CalendarYear]) as the filter argument, so the function lists each distinct calendar year and reports the sales recorded against it.
- CFILTER('Date', 'Date'[CalendarYear] = 2025) as the filter argument, so the table expression is kept only where the calendar year equals the chosen value. Correct
- DTREATAS(2025, 'Date'[CalendarYear]) as the filter argument, so the literal value is mapped onto the year column to constrain the grouped sales total.
Why A is wrong: ALL removes the year filter rather than restricting to 2025, so it would broaden the result to all years instead of limiting it as the requirement demands.
Why B is wrong: VALUES returns every distinct year rather than the single chosen one, so it does not restrict the result to 2025 and instead leaves all years in scope.
Why C is correct: A FILTER table that keeps Date rows where CalendarYear equals 2025 is a valid filter argument to SUMMARIZECOLUMNS, so the grouped sales are restricted to that year exactly as required.
Why D is wrong: TREATAS needs a table of values as its first argument, not a bare scalar literal, so passing the number 2025 alone is invalid and the query would fail.