Mastering DAX Video Course
This is the video course version of the Mastering DAX workshop.
DAX is the native language of the semantic model in Microsoft Fabric, Power BI, Analysis Services, and Power Pivot for Excel. The training is aimed at users and developers of these products who want to learn and master the DAX language.
The goal of the course is to teach all the features of DAX, providing the knowledge to write formulas for common and advanced business scenarios. The video course consists of 32 hours of lectures, including demo files to reproduce the steps shown in the videos. You can watch the videos at anytime and the system will keep track of your progress. In the course, you can download the materials for all demos and exercises.
Students have access to a private discussion area where they can interact with the instructors and ask questions about the lectures and exercises.
Presentation of Mastering DAX 3rd Edition
Presentation of Mastering DAX 3rd Edition
FREE
Exercises, labs, demos, and companion content Added Apr 28, 2026
Exercises, labs, slides, and demos
FREE
Download the demo files
Download the companion content
Introduction to learning DAX
Introduction to learning DAX
FREE
Why is DAX even a thing?
FREE
Understanding how the data model affects your DAX code
Introducing the demo data model
Conclusions
Links
Introducing DAX
Introducing DAX
FREE
Introduction
FREE
Understanding DAX calculations
Understanding DAX calculations
FREE
DAX data types
FREE
DAX Operators
FREE
Conditional statements
Tables and tuples constructors and the IN operator
Understanding calculated columns and measures
Introducing calculated columns
FREE
Introducing measures
FREE
Introducing aggregators and iterators
Choosing between calculated columns and measures
Introducing variables
Formatting DAX code
Using common DAX functions
Aggregation functions
Logical functions
Table functions
Information functions
Mathematical and trigonometric functions
Statistical and financial functions
Text functions
Conversion functions
Date and time functions
Relational functions
Window functions
Time intelligence functions
Introducing visual calculations
FREE
Introducing user-defined functions
FREE
Handling errors in DAX expressions
Conversion errors
Arithmetic operations errors
Empty or missing values
Intercepting and generating errors
Conclusions
Links
Exercises Added Apr 29, 2026
Download exercises
02.01: Margin Calculations
02.02: Product Price Range
02.03: Margin Measure
02.04: Conditional Row Coloring
02.05: Year-over-Year Growth
Introducing the filter context and CALCULATE
Introducing the filter context and CALCULATE
FREE
Introduction
Introducing axis and coordinates
Introducing the filter context
Introducing CALCULATE
Introducing KEEPFILTERS
VALUES as an alternative to KEEPFILTERS
Introducing REMOVEFILTERS
Understanding how totals are computed in Power BI
Conclusions
Exercises Added Apr 28, 2026
Download exercises
03.01: Matrix Filter Context
03.02: Contoso Sales Growth
03.03: Year Range Filter
03.04: European Sales
03.05: Sales Color
Manipulating the filter context
Manipulating the filter context
FREE
Introduction
Country as a percentage of the continent
Percentage over a selected brand
Highlighting the best brands
Choosing how to remove filters
Computing percentage and visually representing growth compared to the previous year
Computing returning customers
Conclusions
Exercises Added Apr 28, 2026
Download exercises
04.01: Customer Count 2022–2023
04.02: Top Sellers in Category
04.03: Black OR Computer Sales
04.04: Yearly Percentage
04.05: Sales by Customer Country
Introducing the row context and the context transition
Introducing the row context and the context transition
FREE
Introduction
Introducing the row context
Introducing the row context
Using the row context with iterators
Understanding column values and column references
Using aggregators inside the row context
Introducing the context transition
Introducing the context transition
Computing customers who purchased more than two products
Understanding automatic CALCULATE around measures
Using the row context with relationships
Using the row context with relationships
Computing sales in the first week
Computing the total order out of a denormalized model
Understanding nested row contexts
Nested row contexts
Nested row contexts on different tables
Nested row contexts on the same table
Nested row contexts using EARLIER
Understanding the differences between FILTER and CALCULATE
Conclusions
Exercises Added Apr 28, 2026
Download exercises
05.01: Max Discounted Sales
05.02: First Year Sales
05.03: Other Customers Sales
05.04: Product Cluster
05.05: Avg Sales
Understanding basic table functions
Understanding basic table functions
FREE
Introduction
Introducing table functions
Introducing the EVALUATE syntax
Understanding FILTER
Understanding ALL and ALLEXCEPT
Computing Top categories and subcategories
Understanding VALUES, DISTINCT, and the blank row
Understanding SELECTCOLUMNS and ADDCOLUMNS
Understanding SUMMARIZE
Introducing SUMMARIZECOLUMNS
Computing the best store by product
Using tables as scalar values
Introducing ALLSELECTED
Conclusions
Links
Exercises Added Apr 28, 2026
Download exercises
06.01: Loyal Customers
06.02: Pct Colors
06.03: Cashback
06.04: Colors Sold
06.05: Sales of Best Products
Understanding variables
Understanding variables
FREE
Introduction
Introducing the VAR syntax
The importance of variable names
Understanding that variables are constant
Understanding the scope of variables
Using table variables
Understanding when variables are evaluated
Common patterns using variables
Conclusions
Exercises Added May 1, 2026
Download exercises
07.01: Fix Best Customers
07.02: Avg Monthly Customers
07.03: ABC Class Columns
07.04: Referencing Columns of a Table Variable
Understanding the evaluation context
Understanding the evaluation context
FREE
Introduction
CALCULATE filters are tables
Introducing expanded tables
Introducing data lineage and TREATAS
Understanding the context transition
Understanding the context transition
Row context and filter context, a recap
Understanding how the context transition works
Using the context transition with duplicated rows
Using the context transition in calculated columns
Understanding active and inactive columns in the row context
Summing up the context transition
Using the context transition with iterators
Using the context transition with iterators
Using iterators
Understanding iterator cardinality
Leveraging context transitions in iterators
Introducing CALCULATE modifiers
Introducing CALCULATE modifiers
Understanding USERELATIONSHIP
Understanding CROSSFILTER
Understanding KEEPFILTERS
Introducing the ALL* family of functions
Understanding the evaluation order of CALCULATE
Understanding circular dependencies
Conclusions
Links
Exercises Added May 1, 2026
Download exercises
08.01: Filter Syntax in CALCULATE
08.02: Delivered Amount
08.03: Colors by Country
08.04: Sales 1st Day
08.05: Fix Best Product Sales
08.06: Pct Over Category
08.07: Fix Discounted Sales
08.08: Filter vs. Filter and Remove Filters
08.09: Sales Red or Europe
Working with the evaluation context
Working with the evaluation context
FREE
Introduction
Using different ways to express a filter
Using CALCULATE in different contexts
Filtering columns versus filtering tables
Understanding the active relationship
Understanding KEEPFILTERS with iterators
Managing selections using SELECTEDVALUE and VALUES
Computing end-of-year gifts for top customers
Using many-to-many relationships
Conclusions
Links
Exercises Added May 1, 2026
Download exercises
09.01: % Large Sales over Contoso
09.02: Pct Over Category
09.03: MinSales and MaxSales
09.04: Brands Selected
09.05: Many‐to‐Many Sales Without Bidirectional Filter
Understanding user-defined functions
Understanding user-defined functions
FREE
Introduction
Introducing functions
Understanding parameter-passing modes
Understanding dynamic binding of columns
Model-dependent and model-independent functions
Naming conventions for user-defined functions
Examples of using functions
Currency conversion
Customers in a year
Global variables
Conclusions
Links
Exercises Added May 1, 2026
Download exercises
10.01: ComputeAmount Function
10.02: ComputeForUSA Function
10.03: WeightedAverage Function
10.04: Generic and Local Functions
Working with tables
Working with tables
FREE
Introduction
Using CALCULATETABLE
Using ADDCOLUMNS
Using SELECTCOLUMNS
Using SUMMARIZE and SUMMARIZECOLUMNS
Using GROUPBY
Reading Power BI queries
Using CROSSJOIN
Using UNION
Using INTERSECT
Using EXCEPT
Using TOPN
Using GENERATE and GENERATEALL
Using NATURALINNERJOIN and NATURALLEFTOUTERJOIN
Using tables as filters
Implementing OR conditions
Narrowing sales computation to customers from the first year
Computing the number of new customers
Creating calculated tables with ROW, DATATABLE and GENERATESERIES
Conclusions
Links
Exercises Added May 1, 2026
Download exercises
11.01: Average Monthly Customers
11.02: Top 10 Products Sales
11.03: Top Products Every Year
11.04: Top Brand and Other Brands Sales
11.05: Sales of Returning Customers .
Understanding window functions
Understanding window functions
FREE
Introduction
Understanding INDEX
Understanding INDEX
Handling ties
Introducing PARTITIONBY
Omitting the source table
Introducing OFFSET
Introducing apply semantics
Understanding OFFSET
Understanding WINDOW
Understanding WINDOW and apply semantics
Understanding apply semantics
Understanding MATCHBY
Understanding RANK and ROWNUMBER
Common window function errors
Duplicate rows in the source table
Circular dependency in calculated columns
Ambiguous row context
Conclusions
Links
Exercises Added May 5, 2026
Download exercises
12.01: Sales Running Total
12.02: Year‐over‐Year Growth
12.03: Customer Sales Rank
12.04: Best Brand Comparison
12.05: Sales of Best Two Products per Customer
Time intelligence calculations
Time intelligence calculations
FREE
Introduction
Introducing time intelligence
Introducing time intelligence
FREE
Introducing the behavior of classic time intelligence functions
Understanding the automatic REMOVEFILTERS over Date
Understanding filter-keep columns
Introducing calendars
Time intelligence functions are table functions
Building a date table
Building a date table
Building a Date table for a Gregorian calendar
Building a Date table for a monthly calendar
Building a Date table for fiscal calendars based on months
Building a Date table for weekly calendars
Working with multiple date columns
Using calendars
Using calendars
Defining calendars
Introducing time-related columns
Understanding the behavior of time intelligence functions
Understanding the behavior of time intelligence functions
Understanding the behavior of classic time intelligence
Understanding the behavior of calendar-based time intelligence
Understanding filter clearing
Understanding lateral shift and hierarchical shift
Understanding time intelligence functions
Understanding time intelligence functions
Understanding DATEADD and SAMEPERIODLASTYEAR
Understanding the same-distance-from-parent algorithm
Time-related columns with DATEADD and SAMEPERIODLASTYEAR
Understanding PARALLELPERIOD and whole period functions
Using interval-to-date calculations
Mixing time intelligence functions
Using semi-additive measures with FIRSTDATE and LASTDATE
Working with opening and closing balances
Conclusions
Links
Exercises Added May 5, 2026
Download exercises
13.01: Same Period Last Year
13.02: YTD Without Future Dates
13.03: Growth Function
13.04: Sales Comparison Across Years
13.05: Gregorian Calendar Structure
13.06: Six‐Month Moving Average
Understanding visual calculations
Understanding visual calculations
FREE
Introduction
Introducing visual calculations
Understanding the visual shape
Understanding the visual shape
Understanding densification
Understanding the visual context
Understanding the visual context
Understanding EXPAND, COLLAPSE, EXPANDALL, and COLLAPSEALL
Navigating the lattice of the virtual table
Accessing the virtual table through ROWS, COLUMNS, and ROWPAGES
Using ROWS, COLUMNS, and ROWPAGES together
Understanding reset and direction
Using CALCULATE in visual calculations
Understanding PREVIOUS, NEXT, FIRST, LAST
Understanding LOOKUP, LOOKUPWITHTOTALS, and auto-expand
Understanding RUNNINGSUM
Understanding ISATLEVEL
Understanding MOVINGAVERAGE
Understanding RANGE
Computing the moving average over the last six months
Computing growth over the same period last year
Comparing sales over the average of siblings
Conclusions
Links
Exercises Added May 5, 2026
Download exercises
14.01: Percent of Parent
14.02: Average Customers per Brand
14.03: Rank over Rows and Columns
14.04: Sales vs Maximum Brand
14.05: Percentage of Contoso Sales14.05: Percentage of Contoso Sales
Understanding calculation groups
Understanding calculation groups
FREE
Introduction
Introducing calculation groups
Understanding calculation group precedence
Using ISSELECTEDMEASURE and SELECTEDMEASURENAME
Intercepting multiple selections and no selection
Activating calculation items in DAX
Using calculation groups to apply global filters
Visual calculations and calculation groups
Conclusions
Links
Exercises Added May 5, 2026
Download exercises
15.01: Metric Selector with a Calculation Group
15.02: Unit of Measure Selector
15.03: Multiple Selection Error
Inspecting the filter context and managing hierarchies
Inspecting the filter context and managing hierarchies
FREE
Introduction
Using HASONEVALUE and ISINSCOPE
Introducing ISFILTERED and ISCROSSFILTERED
Understanding the differences between VALUES and FILTERS
Using ISEMPTY
Understanding arbitrarily shaped filters
Computing Percentages over Hierarchies
Handling parent/child hierarchies
Conclusions
Authoring queries
Authoring queries
FREE
Introduction
Understanding EVALUATE
Understanding EVALUATE
Introducing the EVALUATE syntax
Using DEFINE VAR
Using DEFINE MEASURE
Using DEFINE TABLE
Using DEFINE COLUMN
Using DEFINE FUNCTION
Using DEFINE VISUAL SHAPE and MPARAMETER
Using ROW to test measures
Using SUMMARIZECOLUMNS
Using ISONORAFTER and ISAFTER
Using ADDMISSINGITEMS
Using SUBSTITUTEWITHINDEX
Using SAMPLE
Conclusions
Advanced DAX concepts
Advanced DAX concepts
FREE
Introduction
Understanding expanded tables
Understanding RELATED
Using RELATED in calculated columns
Understanding the difference between table filters and column filters
Using table filters in measures
Understanding the difference between table expansion and filtering
Context transition in expanded tables
Understanding ALLSELECTED and shadow filter contexts
Understanding ALLSELECTED and shadow filter contexts
ALLSELECTED in SUMMARIZECOLUMNS
Introducing shadow filter contexts
Learning best practices for ALLSELECTED
Understanding bidirectional relationships and ambiguity
Understanding bidirectional relationships and ambiguity
Understanding ambiguity in active relationships
FREE
Solving ambiguity in non-active relationships
Understanding auto-exists and non-empty
Understanding auto-exists and non-empty
Introducing auto-exists
Introducing non-empty
Introducing value filter behavior
SUMMARIZECOLUMNS best practices
Conclusions
Links
Practicing DAX with advanced examples
Practicing DAX with advanced examples
FREE
Introduction
Working with a budget and different granularities
Working with a budget and different granularities
Using static allocation
Using a newly-created dimension
Using a many-to-many cardinality relationship
Understanding calculations at different granularities
Using dynamic allocation for all the dimensions
Showing budget and sales together
Working with semi-additive calculations
Working with semi-additive calculations
Scenario 1: Using LASTDATE
Scenario 2: Using the last date of any customer in the current period
Scenario 3: Using the last date of any customer, including previous time periods
Scenario 4: Using the last date for each customer, including previous time periods
Computing same-store sales
Filtering stores open on every year selected
Filtering stores open in the first or last selected year
Using calculation groups to select the filter algorithm
Conclusions
Links
Conclusions
Student Rating
Student Reviews (302)
Hemanth Karur (Apr 9, 2021) Excellent curriculum and content, worked wonderful with your book as reference.
Thank you for adding additional content on Calculation Groups.
Kishore Y C (Mar 31, 2021) This course is Treasure chest full of Gold. However, if you don't practice then this course will be of no use. I am eager to implement DAX in my office projects.
Jonathan Smith (Mar 25, 2021) Splendid course that I will revisit along with the relating book.
Simona Gauri-Reisch (Mar 22, 2021) Thank you for this course, it was extremely helpful!
Anna Kolbasova (Mar 19, 2021) Thank you, Alberto, Marco, Sergio, and the SQLBI Team!
This is the most comprehensive DAX course to date and I am extremely happy to have completed it.
I must admit that without the detailed explanation in the "Definite Guide to DAX, 2nd edition" book, which I was reading at the same time I was taking the course, I would not have been able to understand some of the complex topics. However, in certain situations, I did the opposite and re-watched the video after reading the article in the book and got the aha moment.
Sam Crowson (Mar 18, 2021) Fantastic course! Learnt so much about best practices to build a more efficient model.
Su Ming Ko (Mar 1, 2021) This is the most valuable course I have invested so far. Compulsory details are explained so that you understand how the DAX engine works under the hood. Exercises are interesting and I wish there are more exercises because that is where you squeeze your brain to think. As other reviewer mentioned, we wish there is more involvement in Power Query
Preston Barrett (Feb 22, 2021) This was a very helpful course in learning DAX. The videos were very informative and I learned a lot.
Leonardo Russo (Feb 17, 2021) fantastic course...you are the best even if DAX IS NOT EASY AT ALL!
Filip Aiello (Jan 28, 2021) Excellent! Content was explained in a pedagogical and practical way (on the "demo machine"). Many basic concepts became much clearer along the way.
It would have been good to go through the data lineage parts early in the course, since that functionality is not intuitive to e.g. SQL Developers (as mentioned in one of those videos), but affects how one thinks the engine works and thus how one writes code.
Also, I think it would have been helpful, at least for me, to visualize the propagation of filters throughout the course - e.g. through the use of Dax Studio (like how a filtered dimension table filters Sales, for instance). Since all this happens automatically, it becomes a bit of an abstraction.
– Thanks for the feedback, it is very valuable!
We know there are students with different backgrounds and the current examples are not specifically targeted to people who have a programmer or SQL knowledge. We are working on additional material that should provide exampled more familiar to those having different former experiences, like the one you indicated. We are going to improve the searches on our website, too - in the meantime, you can take a look at our YouTube channel where we post additional free videos: https://www.youtube.com/user/sqlbitv - They do not cover the specific topic you mentioned, but you might find interesting content, too.
Regarding the tools, we are also investing on that side to get better visualizations also for the educational part. You will see the result of these efforts later this year. Reply by SQLBI (Jan 30, 2021) JOSE MANUEL ORTEGA GARCIA (Jan 28, 2021) Great Course. I have learned a lot about DAX. Excellent teachers, excellent materials, EXCELLENT EVERYTHING! Top TOP
Maxim Smetanin (Jan 22, 2021) WOW, great course!
My thanks to Marco, Alberto and Sergio for the great learning.
Robert Russell (Jan 9, 2021) excellent course. would be completely lost in Power BI without it. Alberto and Marco not only know the domain inside out, they have put many, many hours into thinking about how best to teach the material and then deliver with absolute clarity.
Israel Shavit (Jan 4, 2021) Amazing to learn from the experts!
Sean Packard (Dec 29, 2020) Incredible
Would you prefer a classroom course?
This video course is based on a classroom course we teach all around the world. If you prefer a classroom learning experience, take a look at the dates below for a list of our upcoming classroom courses!
Copenhagen, DK
May 5-7, 2026 Copenhagen
Baltimore, MD, US
May 27-29, 2026 Baltimore
Zürich, CH
Jun 10-12, 2026 Zürich
Berlin, DE
Jun 15-17, 2026 Berlin
Amsterdam, NL
Jun 30-Jul 2, 2026 Amsterdam
What is included
This video course contains 38 hours of training, for a total of 416 lectures.
Our training platform tracks your progress and resumes the course from where you left off.
The course is accessible on desktop and mobile browsers for
36 months after the purchase date .
The videos are hosted by SQLBI on vimeo.com – if you are in a country that blocks access to this platform, you will need a VPN to watch the videos.
You can download all the exclusive content produced by our trainers for this video course, including all the examples and the exercises. Take a look at the curriculum for more details.
In this video course both our senior trainers are in front of the camera. The conversational style allows for more entertaining lectures, and it answers the most common questions on the topics covered.
After completing all the lectures in this video course,
you will be able to download a certificate of completion in PDF format from your student dashboard.
Options
Volume discounts are offered when you purchase multiple courses within one same order. To obtain the discount, just press the
Enroll Now button and add more courses or students in the next step. The discount cannot be applied to transferable licenses.
Amount
Discount
$ 500 +10% $ 1000 +15% $ 1500 +20% $ 4000 +25%
You can get a group discount by registering 10 or more students to the same course. To obtain the discount, just press the
Enroll Now button and add more students in the next step.
Students
Discount
10+ 25% 25+ 30% 50+ 40% 100+ 50% 200+ 65% 300+ 70% 350+ 72%
This video course is also available with a transferable license, which is a convenient solution for teams.
License type
Price
Duration
Student(s)
Untransferable
$ 449
36 months
1
Transferable
$ 1790
36 months
Unlimited *
* The number of concurrent access reflects the number of licenses you have purchased. E.g. If you have a single transferable license, only one student can access the course at a time. To give another student access to the course, you must revoke the access and assign the license to the different student.
More on licenses
This video course is also available in the following bundles for enterprise customers:
Enterprise Essential Bundle Enterprise Essential Bundle (Transferable) Enterprise Advanced Bundle Enterprise Advanced Bundle (Transferable)
Enterprise bundles
Training Platform
Along with subtitles, you can view a transcript of the content of each lecture in different languages.
The transcripts are synchronized with the video and you can easily jump from one segment to another.
Learn more
Save the most interesting lectures for future use and easy access with bookmarks.
Press the marker button in every lecture and check the Bookmarks tab.
Learn more
You can highlight segments of the video transcripts, like you would with a printed book. Highlights are automatically saved and quickly accessible from your Bookmarks tab.
Learn more
In every section of this course, you will find an easy way to start a discussion about a topic relevant to the course.
Our team usually replies within a few hours!
Learn more
A team management dashboard is available if you choose to assign this course after the purchase or you get a transferable license.
Learn more