Build a model small enough to inspect
Create a Sales fact table with date, product key, quantity, and amount, plus Product and Date dimensions. Use a handful of rows across two products and two months. Establish the intended one-to-many relationships and check their direction. You should be able to calculate every example by hand before relying on a report.
Define a basic measure such as Sales Amount = SUM(Sales[Amount]). Place product category on rows and the measure in values. Each cell is evaluated under a different filter context. The measure text stays the same while the set of relevant fact rows changes through the model relationships.
Distinguish filter context from row context
Filter context is the collection of filters affecting an expression's evaluation, including visual selections and filters introduced by DAX. Row context identifies a current row during calculated-column evaluation or an iterator. These concepts interact, but they are not interchangeable. A row context alone does not mean every related table has been filtered in the way a visual filters it.
Compare a calculated column multiplying quantity by unit price with a measure aggregating amounts. Then use an iterator for an appropriate row-by-row calculation. State where the row context comes from and which filters remain active. Avoid learning DAX as a list of functions without tracing the evaluation context.
Use CALCULATE to change an explicit filter
Microsoft documents CALCULATE as evaluating an expression in a modified filter context. Try Blue Sales = CALCULATE([Sales Amount], Product[Color] = "Blue"). Put colour on a visual and inspect what happens in a non-blue row. For a filter on the same column, the new filter normally replaces the existing one unless a different behaviour is requested.
Test KEEPFILTERS around the colour condition and compare the result. Explain the intersection in ordinary language. This exercise is more useful than memorizing that CALCULATE is powerful: you can point to the exact filter that was replaced or preserved and verify the resulting rows.
Design denominators intentionally
For a category share measure, decide whether the denominator means all categories, all products, or the currently selected comparison set. These are different questions. A formula such as DIVIDE([Sales Amount], CALCULATE([Sales Amount], REMOVEFILTERS(Product[Category]))) removes the category filter but does not promise to remove every other product filter.
Add a product colour slicer and observe the denominator. Then compare removing filters from the whole Product table with removing only Category. Document the intended business meaning before choosing a function. A percentage that totals plausibly can still answer the wrong question when hidden slicers or other columns remain active.

Understand context transition and totals
CALCULATE can transition row context into filter context. Measure evaluation within a row context also involves context transition, which can surprise learners using iterators. Start with a tiny calculated-table or iterator example and inspect the current row's keys. Do not debug the issue by randomly adding ALL until a number looks familiar.
A total cell usually reevaluates the measure in the total's context; it is not inherently the sum of the displayed cells. This matters for ratios, distinct counts, and conditional measures. Explain whether the business wants a recomputed total or an aggregation of visible groups, then implement that requirement deliberately.
Create a context-debugging routine
When a result is unexpected, identify the cell, list its active filters, inspect relationship propagation, and evaluate the numerator and denominator separately. Add temporary table visuals with the relevant keys and base measures. Check whether the apparent DAX error actually comes from duplicate dimension keys, an inactive relationship, or an incorrect table grain.
For a final exercise, predict five cells before refreshing the visual: one category, a filtered colour, a blank combination, the grand total, and a selected month. Compare the results with your hand calculation. Use Microsoft's CALCULATE and REMOVEFILTERS documentation as references, while keeping your own tiny examples as evidence that you understand the context rather than merely recognize syntax.
Sources & further reading
Last editorial review: 27 October 2026. Examples are educational, not live employer data or guaranteed outcomes.


