Skip to content

DAX is where a Power BI report stops being a reshuffled spreadsheet and starts producing numbers you could not get any other way: year-to-date revenue that respects a slicer, share of total that ignores one, ranking that recalculates at whatever granularity the visual asks for. Almost all of it runs through two ideas — filter context, and the row-by-row evaluation that iterators perform — and almost all DAX bugs come from losing track of which one is in play.

If you are new to the language, start with the basics guide, then read filter context and row context before touching CALCULATE. That order matters: CALCULATE is short and simple only once you already understand what it is modifying. From there the natural progression is CALCULATE itself, then time intelligence, then the iterator functions — and only after that the optimisation material, because tuning a formula you do not understand is guesswork.

The recurring mistake at this level is reaching for nested IFs where SWITCH belongs, or rebuilding a measure in every visual instead of fixing the model underneath. Each article here states the evaluation order it relies on and links to Microsoft's reference for the function involved, so you can check the behaviour against your own build rather than trusting a screenshot.