DAX Demystified
DAX is a functional language. It consists of more than 250 functions. This seems like a lot right? Learning how to properly use 250+ functions seems like a daunting job, but here is the secret. You do not need to learn by heart all of them but instead try a different approach.
DAX Functions receive inputs and have an output. focus on those elements first! Do you know how many different types of inputs can DAX function receive? 3.
These are:
*Table
*Column
*Expression
If the function receives a column as input, then most times you can only reference native data model column reference.
If a function receives table or expression input, that input can be either reference to a data model object/value, or any other function which returns a table or expression as a result.
to accelerate your DAX training, you should start looking at it from the point of functions with 3 types of inputs and a single output. Unless input is a column reference, you can use any other DAX function/combination of functions that will output a proper table or scalar expression. Now the complexity of 250 different functions falls into a range of understanding of what each function receives and which data transformations they produce.
To further lower the overwhelming feeling of needing to learn many DAX functions prior to writing code, know this. Like in many other situations in life, you can apply Pareto principle to learning DAX functions. Most of the time you will use 20% of functions to produce 80% of code results. In this guide, we will cover all the most important ones. the other 80% of functions are problem specific. Once you’ll need them, you will find their description online and check their input requirements.
DAX Objects
When the data is imported into a data model, you can further enrich it with the following most important object types:
- Measures
- Calculated columns
- Calculated tables
- calculation groups (Items)
You can think of these objects as containers for your DAX code. Some of these containers are materialized in your data model, such as calculated tables and columns. The other ones produce results based on different sets of filters. These are called Measures.
Calculation groups are special type of table objects. There is also a newly introduced object in DAX called Field Parameters, which we will cover in later additions to the guide. We also plan to release a cheatsheet on calculation groups.
Let’s focus on the first 2 types. They have different purposes in a data model, and you need to understand the differences before using them properly.