What is DAX? Power BI's formula language in plain English
Easy Insight Team ·
DAX (Data Analysis Expressions) is the formula language of Power BI. It uses functions, operators and values to calculate over data in related tables and columns of a model. Unlike an Excel formula, which points at cells, DAX works over a whole column or table — and its answer changes with whatever is filtering the report.
Where is DAX used?
In Power BI, Analysis Services and Power Pivot in Excel (Microsoft Learn) — learn it once, use it in all three. It appears in measures, calculated columns, calculated tables and row-level security. Measures are 90% of the job.
Measures vs calculated columns
The first fork in the road, and the commonest beginner mistake.
A calculated column is worked out once per row and stored in the model. Enter this in a Date table and every row gets a value like 2026 Q1:
= [Calendar Year] & " Q" & [Calendar Quarter]
A measure is worked out on demand, and depends on context:
Total Sales = SUM([Sales Amount])
returns a different number in every cell of a report — North region, last quarter, grand total — because each cell supplies a different filter.
Rule of thumb: if the answer should change when someone clicks a slicer, it is a measure. Measures also cost no storage, where calculated columns are held in memory for every row (Microsoft Learn). Prefer measures.
The concept that trips everyone up: context
Microsoft's docs call context "critical for building high-performing, dynamic analyses". Two kinds matter early on.
Row context is "the current row". A calculated column has it automatically: = [Freight] + [Tax] takes both values from the row it sits on.
Filter context is the set of values currently allowed — from slicers, report filters, headings, or the formula itself. It is why SUM('Sales'[Profit]) gives the whole-table total in a calculated column but the filtered total as a measure.
When a DAX formula returns an unexpected number, the cause is almost always context, not syntax. Ask what is filtering it before rewriting it.
A worked example
You want last year's sales beside this year's:
Sales LY = CALCULATE( [Total Sales], SAMEPERIODLASTYEAR( 'Date'[Date] ) )
CALCULATE changes the filter context; SAMEPERIODLASTYEAR shifts the dates back a year. Drop it beside Total Sales and every row compares like with like — no formula copied down, no cell references.
This only works with a proper date table and clean relationships, which is why star schema modelling matters more than DAX skill. A good model makes DAX short; a bad one makes it heroic.
Where does DAX stop and Power Query start?
If it changes the shape of the table, it belongs in Power Query, before the model. If it produces a number on a report, it is DAX. Shape work done in DAX is the commonest cause of a slow model.
Once you write DAX daily, our keyboard shortcuts for DAX save more time than any function. Our data practice and Power BI consultancy pages cover how we build maintainable models.
Frequently asked questions
What is DAX?
DAX — Data Analysis Expressions — is the formula language used in Power BI, Analysis Services and Power Pivot in Excel. It calculates over whole columns and tables in a data model, rather than over individual cells the way an Excel formula does.
What is the difference between a measure and a calculated column?
A calculated column is worked out once per row and stored in the model. A measure is worked out on demand, and changes with whatever is filtering the report. If the answer should respond to a slicer, it is a measure. Prefer measures — they cost no storage.
Is DAX the same as Excel formulas?
They look similar and share many function names, but work differently. An Excel formula points at cells and ranges; DAX always references a whole column or table, and its result depends on the filter context the report supplies — which is why one measure returns a different number in every cell.
Easy Insight is a UK consultancy for AI, web, apps and data — senior specialists only, no juniors.
Next step
Want a number before you talk to anyone?
The free Power BI & Fabric Pricing Estimator gives you a first-pass licensing cost in two minutes, and it doesn't ask for an email. When you're ready, a free data review is one call with the consultant who would deliver it; EasyStart Power BI builds are fixed from £4,950.

