🚀 New batches open: Advanced Excel • Power BI • SQL • AI for Analytics — Book a free demo

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.

Who this is for Anyone in MIS, finance, operations or reporting moving into Power BI — and anyone preparing for a Data Analyst interview, where CALCULATE and filter context come up every time.

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

1 → * 1 → * * ← 1 Sales 48 rows · the fact Date · ProductID RegionID · Qty · Amount Product ProductID · Product Category · Price Region RegionID · Region Manager Calendar Date · Year Quarter · Month Filters flow one way: from the dimensions down into the fact table.

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.

What it does not do Clicking through Power BI Desktop, building visuals, publishing to the Service, gateways and refresh schedules, or the M language behind Power Query. Days 2, 3 and 11 teach the thinking behind those; the button-clicking needs the real application, and that is the classroom course.

How to get the most out of it

  1. Type the measure, do not copy it. The typing is where the learning happens.
  2. Use the matrix view. Add ALL(), take it away, and watch what changes.
  3. Check the total row every time. When it is not the sum of the rows above, understand why before moving on.
  4. Do the exercises at the end of each day.