Free Power BI Tutorial — learn DAX in 12 days
Power Query, the data model and DAX — topic by topic, with every measure runnable right here in the page.
A free, hands-on Power BI course
Twelve short lessons covering Power Query, the data model and DAX. Every measure runs in your browser against a real star schema — edit it, break it, run it again. Nothing to install, no signup, no Power BI licence needed.
Start with Day 1.
The 12 days
Day 1 — What Power BI actually is
Three tools in one application. Knowing which one you are in explains most of the confusion.…Day 2 — Power Query — getting data in and cleaning it
The step that happens before any measure runs. Get it right and everything downstream is eas…Day 3 — Shaping data — split, group, append and merge
Four operations that cover most of the reshaping you will ever need.…Day 4 — The data model and relationships
Get the model right and DAX becomes easy. Get it wrong and no amount of clever DAX will save…Day 5 — Measures and calculated columns
The choice everyone gets wrong at first, and the reason reports get slow.…Day 6 — The measures you will write every day
Eight functions that cover the large majority of real reports.…Day 7 — CALCULATE — the function everything depends on
If you learn one DAX function properly, learn this one.…Day 8 — Filter context and row context
The two contexts. Almost every confusing DAX result comes from mixing them up.…Day 9 — Time intelligence — comparing to last year
Every management report asks the same question: how does this compare with last year?…Day 10 — Iterators, ranking and top-N
Row-by-row calculations, and answering "which are the best five?"…Day 11 — Building the report — visuals that get read
The measures are done. Now make something a manager will actually look at.…Day 12 — 12 practice questions
Everything from the first eleven days. Write your own answer before opening each box.…The model you will work with
A fact table of 48 sales across 2024 and 2025, with Product, Region and Calendar dimensions — the same shape you would build in Power BI Desktop.
What this playground can and cannot do
Power BI is a desktop application, so a web page cannot pretend to be one. DAX is a language, though, and a language can be implemented — so that is what this tutorial does. The engine is written from scratch and evaluates real measures against a real model, with a genuine filter context that propagates along relationships.
It supports SUM, AVERAGE, MIN, MAX, COUNT, COUNTROWS, DISTINCTCOUNT, CALCULATE, FILTER, ALL, VALUES, RELATED, DIVIDE, IF, SWITCH, FORMAT, ROUND, the X iterators (SUMX, AVERAGEX, MINX, MAXX), and time intelligence with SAMEPERIODLASTYEAR, DATEADD and TOTALYTD. CALCULATE behaves the way real DAX does: a filter argument replaces any existing filter on the same column and leaves other columns alone.
Measures can be shown as a single value or as a matrix broken down by any column — which is what makes filter context visible instead of abstract.
How to get the most out of it
- Type the measure, do not copy it. The typing is where the learning happens.
- Use the matrix view. Add
ALL(), take it away, and watch what changes. - Check the total row every time. When it is not the sum of the rows above, understand why before moving on.
- Do the exercises at the end of each day.
