Fix: A Circular Dependency Was Detected in Power BI
Why Power BI refuses to compute a column that refers back to itself, the three shapes this error takes, and the fix for each — with working DAX.
Master the Data Analysis Expressions language.
19 tutorials in this category
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.
Why Power BI refuses to compute a column that refers back to itself, the three shapes this error takes, and the fix for each — with working DAX.
Three DAX functions that all group rows, and only one is right for a given job. Where each one belongs, and the SUMMARIZE pattern that quietly misbehaves.
Measure or calculated column in Power BI? Compare how each is stored, evaluated and filtered, with a side-by-side table and rules for where each belongs.
Speed up slow DAX measures: replace row-by-row iterators, avoid context transitions, use variables, and read the query plan to find the real bottleneck.
EARLIER reaches a parent row context from inside a nested iteration. When you still need it, and the cleaner alternatives to use instead.
A hands-on DAX Studio tutorial: download it, connect to an open PBIX, run EVALUATE queries, read query plans and Server Timings, and find the slow measures.
Percent of total with ALL, ALLEXCEPT or a ratio measure: which pattern respects slicers, which ignores them, and when each is correct.
Most slow reports are slow because of DAX. Ten patterns that fix the common cases, with Server Timings readings to prove it worked.
DAX UDFs are GA as of June 2026. Package tax, currency and margin logic once with the FUNCTION keyword, then reuse it anywhere.
RUNNINGSUM, MOVINGAVERAGE and PREVIOUS run at the visual level, replacing dozens of measures. What they can and cannot do.
VAR makes long measures readable, stops repeated evaluation and removes a class of context-transition bugs. Scope rules and patterns.
SWITCH replaces nested IFs with readable logic. Four patterns, the order-of-evaluation rule, and the mistakes that make it return blank.
RANKX ranks rows by any measure, but it is easy to get wrong. Syntax, four ranking patterns, ties handling and the usual mistakes.
Fifteen DAX errors that look cryptic, from blank results to wrong totals to circular dependencies, with the exact fix for each.
Ten errors nearly every beginner makes: data types, DAX context, dashboard layout. The fix for each, and why it happens.
SUM reads a column; SUMX evaluates a row expression. When the difference changes your totals, and when SUMX is the only correct choice.
Two evaluation contexts govern every DAX result. How they differ, how they interact, and the mental model that predicts a formula's output.
CALCULATE is the only DAX function that changes filter context. Follow its evaluation order, then apply three reusable patterns with formulas you can copy.
What DAX is, why measures and calculated columns are not interchangeable, and the five formulas to write on your first day.