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
5-star Reviews (273 of 300)
bishal paudyal (Dec 6, 2020) Well-structured,
Rich coverage,
Good pedagogy,
Perfect duo,
Inspiring,
Business applicability,
Real heroes of DAX!
Tyler Snyder (Nov 22, 2020) Exceeded Expectation. I thought I knew DAX fairly well before this course, but it was an eye opening experience. They are hands down THE BEST instructors out there for DAX.
Vittorio Giatti (Nov 20, 2020) Nice guide for learning DAX!
Tomasz Gacek (Nov 20, 2020) The best course ever!
John Tran (Nov 18, 2020) Very good deep dive into Data Analytics eXpressions. Helps build a firm foundation understanding over the language and its capabilities in using Microsoft Analysis Services products.
John Opondo (Nov 16, 2020) Great course! Very well executed!
Mahmood Humodah CMA (Nov 13, 2020) This Course is the best course that covers every detail of DAX but I need more real practical examples for preparing Balance Sheet Income Statement Cash Flow from Trial balance by applying the concept of Hierarchies
Alejandro Rodriguez (Oct 30, 2020) Excelent course, very complete and a very good to support material to check everytime when you have some doubts.
Ahmad Hassan Khan (Oct 22, 2020) Great learning experience! Enjoyed every bit of it.
Ariel Bosano (Oct 21, 2020) Great Material, and a great way to learn all the DAX fundamentals. I've enjoyed every piece of material given by Marco and Alberto.
Even though this course includes almost everything about DAX functions and concepts, the book is much more complex and complete compared to this course.
Think of this course as an introduction and to be able to understand the book even faster.
Ronald op den Buijs (Oct 17, 2020) A practical and useful course to learn DAX. The mix of video and exercises makes that I really experienced the complexity of learning DAX code. The demos and exercises are useful to making DAX code for reports at work.
Ron van der Laan (Oct 10, 2020) I have learned very much in this course and also in the classroom course in Amterdam.
If you want to learn Dax this is the address.
Rubens Maia (Sep 29, 2020) Excellent content. Very heavy, so you cannot rush through it. But the quality is outstanding, and support is also great.
Vyacheslav Ilnytskyy (Sep 14, 2020) Amazing course. Information provided in a very dense manner so it does require revisiting multiple times later. And I can say that once again, doing book and course in parallel is a great experience. Thank you very much. I just wish there were demo and exercises files for Calculated Groups.
Fabricio Mendes (Sep 7, 2020) The course is excellent and gave you a complete view of DAX.
I believe it would be important to talk about M, then it would be a deep insight into Power BI
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