DAX (Data Analysis Expressions) is a formula language built for tabular data models -- the kind you work with in Power BI, Analysis Services, and Power Pivot. It's a function language: no loops, no cell references. You compose functions together, and the engine evaluates them against your data model.
Microsoft migrated 80+ functions directly from Excel (SUM, IF, AVERAGE, etc.), then added 100+ DAX-only functions like CALCULATE, FILTER, and ALL. There are now over 250 DAX functions.
DAX creates three types of calculations -- understanding the difference is one of the most important things you'll learn:
Measures
Dynamic calculations evaluated at runtime. They respond to filters, slicers, and context in your visuals. The backbone of DAX.
Recommended DefaultCalculated Columns
New columns added to tables, calculated row by row during refresh. Stored in memory. Use for values you'll filter or sort by.
Stored Per RowCalculated Tables
Entirely new tables generated from DAX expressions. Perfect for date tables, bridge tables, or summarized snapshots.
Materialized TableWhy does this matter? Choosing the right calculation type directly impacts performance, memory usage, and report behavior. We'll dig deeper into each type in the next sections.