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)
Sergio Siffredi (Aug 24, 2020) excellent training and awesome trainers
Santosh Raghunath (Aug 22, 2020) Marco and Alberto are Amazing. Explaining DAX is not easy. Marco and Alberto make it easy for understanding. Exercises provided are super amazing. Makes you think hard and this, in turn, helps you grow. On the other hand, Sergio quickly replies back to your discussions with appropriate answers. By the time we finish the course, we feel like a family. Family of DAX. Thank you.
Yael Amitay - Preiss (Aug 19, 2020) thanks a lot! it was a great course!
Ka Ly (Aug 14, 2020) Absolutely wonderful course. Alberto and Marco are Professionals at the highest level with the ability to teach highly complex topics in DAX. I will have to watch this course and review the book several times to get all the knowledge that they are presenting. I highly recommend this course for all Power BI users. Thank you so much for sharing your knowledge!
Paolo Rizzo (Aug 13, 2020) I am amazed by the amount of work you have put in this video course. Very interesting and didactic. I would have appreciated Power BI demos for the new chapter on calculation groups. In conclusion, you made me realize what I want to work for my future career. Many thanks!
Jorge Daniel (Aug 4, 2020) Hi Alberto and Marco,
Great course. Actually it was much more than I expected and I will surely revisit the content many times.
Rodolfo Flores Mendez (Jul 22, 2020) I am a business consultant that in the past 2 years transitioned from conventional data analytics tools (a.k.a "excel") to more sophisticated data analytics and data science engines. I had been looking for a long time for a comprehensive course on DAX and PowerBI, that covered enough theory to consider myself a DAX developer, and feel comfortable writing complex code in DAX for more sophisticated business applications.
I am very happy to say that THIS IS THE COURSE. It is the perfect balance between a pragmatic and a theoretical approach. It has helped me skill-up to the next level in DAX and I found it to be the best course available in the market. Other training programs are too "generic", they cover only the basics and leave a lot of loopholes. They try to get you something “fast” and “simple” so you can apply PowerBI right away, but such courses don’t make you a DAX expert, just a superficial analyst. This course is the only one that again, really skills you up to the next level to consider yourself a true DAX coder. Cant wait to take the Optimizing DAX course!
Congratulations to Alberto and Marco, I am your #1 FAN.
David Bianconi (Jul 20, 2020) This was the best course I have ever followed and not only with regards to Business Intelligence. Congratulations to all the SQLBI staff
Sandeep Singh (Jul 13, 2020) I have just completed 50% of the course, and honestly I can understand the mechanics of DAX, this is not an beginner course for sure, but it will take your DAX knowledge to the next level. Can't wait to start on reading the book - 'Definitive Guide to DAX - 2nd Edition' after completing this.
I have just a suggestion, if new exercises are added constantly modelled after real life business problems, the course would have warranted 6 stars. But the included examples are tough and in depth to test you knowledge of DAX.
Bow down to DAX wizards, Marco Russo and Alberto Ferrari!!
Amaru Quinones (Jul 12, 2020) Extremely great!!
Armando Barajas (Jul 9, 2020) Excelent course
Ciro Gómez Parssian (Jun 21, 2020) Best DAX course, period. The Maestros way of teaching DAX is elegant, sharp, with a deep understanding of use cases and engine logic, and truly business-oriented. In other words: pure Business Intelligence.
ELIAS BARBOSA DA SILVA JUNIOR (Jun 14, 2020) Very complete course. Covers the many hidden traps in the DAX language.
Barnabas Toth (Jun 5, 2020) Great course! Nice explanations!
Abdelrahman Abdou (May 28, 2020) Great course for Learning DAX! A true Gem!
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