Direct answer: DAX is the formula language Power BI uses for calculations. Most business logic is written as measures, which are re-evaluated in the filter context of each visual cell.
Measures vs calculated columns
A measure is calculated when the report runs and responds to slicers. A calculated column is calculated at refresh and stored per row. Use measures for totals and ratios.
A first measure
Total Revenue = SUM(Sales[Amount]). Drop it in a table by Region and each row evaluates it with that region as the filter.
Filter context and CALCULATE
CALCULATE changes the filters: Revenue 2025 = CALCULATE([Total Revenue], Calendar[Year] = 2025). Percent of total: DIVIDE([Total Revenue], CALCULATE([Total Revenue], ALL(Product[Category]))).
Time intelligence
With a marked date table: Revenue LY = CALCULATE([Total Revenue], SAMEPERIODLASTYEAR(Calendar[Date])).
Iterators
SUMX evaluates row by row: Revenue = SUMX(Sales, Sales[Qty] * Sales[Price]).
Common mistakes
- Percent of total showing 100% because the denominator keeps the row filter
- No proper date table
- Calculated columns where a measure belongs
Related
Correct DAX depends on a good data model. Use it in a dashboard.
Conclusion
Learn context first, functions second. The DAX course teaches this in order.
Frequently asked questions
What is DAX?
Data Analysis Expressions, the formula language of Power BI, Power Pivot and Analysis Services.