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, slides, and demos
Exercises, labs, slides, and demos
Download the demo files
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 (300)
MATIAS STERZER (Jun 18, 2021) Every time I played one of these videos, I learned something new. And I'm pretty sure I'll keep doing it. Excellent material!!
MATIAS STERZER (Jun 18, 2021) Every time I played one of these videos, I learned something new. And I'm pretty sure I'll keep doing it...Excellent material!!
Oded Dror (Jun 1, 2021) Very informative
One suggestion for the Filter Context, Row Context and transition it will be helpful to return one VAR at the time to show the students what VAR actually contain by visualizing the VAR data it will help to better understand this complex subject enjoy DAX
Thomas Schmidt (May 25, 2021) Excellent Course from the Grandmasters of DAX-Fu!
Thanks Alberto & Marco
Khristian Hernandez (May 19, 2021) Was a good course, thank you.
Manuel Pedrozo (May 18, 2021) Excellent course, well done all the way around. Highly recommend.
Kun Wang (May 11, 2021) Awesome Courses
Stefaan Louette (May 9, 2021) By far the best course I ever had - masterpiece and for me a mandatory one for anybody who is working with PowerBI and DAX
Abhijith DSouza (May 3, 2021) Fantastic course covering all aspects of DAX. A must for any Power BI professional
Gaston Clynhens (May 2, 2021) Dear SQLBI Team,
What a fantastic course!
The global setup and the way this is organized is excellent.
Some pro's: studying at your own pace, when you have personal timeslots available, based on high-level video courses explaining the concepts in a structured & clear way, dedicated (real-life) exercises and last but not least the interaction in the "Discussion".
( There are no con's )
This was "chapter 1" in my DAX adventure; the next ones will be related to "consolidation of the knowledge" and diving deeper into (other) details. Every chapter in this course is very relevant; the different options explained in the "Working at different granularity" part is simply great!
I'll see you soon!
Thank you
Mark Bennett (Apr 23, 2021) Excellent!
Vladimir Rakascan (Apr 15, 2021) The course is great, I learned a lot!
I will definitely watch the course again after some time spent practicing DAX.
I would like to thank Marco and Alberto for making a huge effort to realize such good content.
Maria Katsanevas (Apr 13, 2021) great course
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.
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!
Houston, TX, US
Mar 30-Apr 1, 2026 Houston
New York City, NY, US
Apr 8-10, 2026 New York City
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 32 hours of training, for a total of 330 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
$ 359
36 months
1
Transferable
$ 1790
$ 1432
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