DP-600 - Prepare Data - Section 2.9

Select, filter, and aggregate data using DAX queries against a semantic model.

Write DAX queries using EVALUATE and SUMMARIZECOLUMNS to retrieve tabular results from a semantic model. Use CALCULATE to modify filter context and apply measures to aggregate data, distinguishing DAX query syntax from the measure expressions written in the model editor.

DAX queriesEVALUATESUMMARIZECOLUMNSCALCULATEmeasures

Practice question for this objective

Free samplePrepare Datahard

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.
Restrict a SUMMARIZECOLUMNS result at query time by passing a FILTER table expression as a filter argument rather than altering the model. SUMMARIZECOLUMNS accepts filter table expressions as arguments that constrain the groups it evaluates, so a FILTER over the Date table keeping only CalendarYear 2025 narrows the grouped output to that year while leaving the underlying measure unchanged.

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.

See more DP-600 practice questions, answers explained.

More in this domain

Back to all Prepare Data objectives, or the DP-600 cert hub.

Examworthy is not affiliated with or endorsed by Microsoft. Original, blueprint-aligned practice material only.