An Introduction to DAX

Behind the scenes of Power BI lies a language called Data Analysis Expressions (DAX), which is used to manipulate data within the application. In this blog post, we’ll take a deep dive into DAX and explore how it can help you make better business decisions.

· 5 min read
An Introduction to DAX

In the world of business intelligence, data analysis is an essential tool for making informed decisions. And when it comes to data analysis, Microsoft’s Power BI is one of the most popular tools in the market today. Behind the scenes of Power BI lies a language called Data Analysis Expressions (DAX), which is used to manipulate data within the application. In this blog post, we’ll take a deep dive into DAX and explore how it can help you make better business decisions.

What is DAX?

DAX is a powerful language that allows you to manipulate data within Power BI. Created by Microsoft, it is also used in other applications like PowerPivot and SQL Server Analysis Services. DAX allows you to enrich your data model with calculated columns and measures that help you make sense of your data. In essence, it enables you to manipulate data without having to create a new dataset altogether, making it a powerful tool for data analysis.

Calculated columns and measures are an integral part of any data model that you create in Power BI. Calculated columns are columns that you add to your data to enrich it with additional data points. For example, you may want to know what your profit is per line item of a sale. Your calculated column could be created as Profit = [Sale Price] – [Cost]. This formula would generate a Profit value for each row in your data and allow you to summarise it to any level you choose when visualising it.

On the other hand, calculated measures are used to calculate aggregate values that can be sliced and diced based on different categories. For instance, if you wanted to calculate a profit percentage, this is better done as a measure. As you summarise the data more, a measure will automatically scale with your context, and you will have to choose how best to summarise your column.

Why Is DAX So Useful?

DAX is a powerful language that provides you with the ability to manipulate data without having to create a new dataset altogether. In contrast, in applications like Excel, you will need to create multiple copies of the same dataset to slice data multiple ways and create different pivot tables to see things the way you want. With DAX, you can have a single dataset that you enhance with calculations.

DAX provides a vast array of functions for calculated columns and measures, far more than what is available in Excel. Power Query, which is Power BI’s data transformation and data preparation engine, contains over 250 functions, and that number is growing all the time. These functions are categorised into different groups, including Date and Time Functions, Time-Intelligence Functions, Filter Functions, Information Functions, Logical Functions, Maths & Trigonometry Functions, Parent & Child Functions, Statistical Functions, and Text Functions.


  1. Date and Time Functions: These functions allow you to convert or calculate dates and times in your data.
  2. Time-Intelligence Functions: These functions use built-in knowledge of calendars and dates to create calculations for comparing data across time periods.
  3. Filter Functions: These functions help filter and retrieve specific data, allowing you to create different views of your data dynamically.
  4. Information Functions: These functions are logical tests that return a TRUE/FALSE response, such as ISBLANK or ISNUMBER.
  5. Logical Functions: These are operators in your expressions, such as AND, IF, and OR.
  6. Maths & Trigonometry Functions: These functions help you solve specific mathematical questions in your data.
  7. Parent & Child Functions: These functions allow you to manage data that has a parent/child structure, such as hierarchical data.
  8. Statistical Functions: These functions are designed for aggregation, ranging from sums and averages to more complicated statistical values like standard deviation.
  9. Text Functions: These functions are designed to manipulate strings, such as concatenating or parsing text.

The DAX Learning Curve

For experienced Excel users, the learning curve for DAX is not steep. The simple formulas will seem no different from Excel’s, and you will be able to pick them up in no time. The guided formula builder in Power BI makes it even easier if you’re not quite sure about something. However, as you get more advanced and move beyond Excel-like formulas, the learning curve will be steeper. But by then, you will be comfortable working with Power BI, making it manageable.

Here's a simple DAX formula:

Total Sales = SUM(Sales[Amount])

This DAX formula calculates the sum of the Amount column in the Sales table and returns the result as a measure called Total Sales. This measure can then be used in visualisations or other calculations in Power BI.

Advanced DAX

DAX enables you to build complicated formulas to manipulate and aggregate your data. If you are familiar with writing code or even complicated formulas in Excel, then this will be very similar, just more complicated. Since DAX has its own syntax, it will take some time to get comfortable with the more advanced features. DAX enables you to do many of the transformations that previously would have had to be done in a database with advanced queries and logic, freeing up data engineer and DBA time and removing them as a bottleneck from the process.

Here's an example of a more complex DAX formula:

Top 5 Products by Sales:=
VAR Top5Products =
    CALCULATETABLE (
        VALUES ( 'Product'[Product Name] ),
        TOPN (
            5,
            SUMMARISE (
                'Sales',
                'Product'[Product Name],
                "Total Sales", SUM ( 'Sales'[Sales Amount] )
            ),
            [Total Sales], DESC
        )
    )
RETURN
    CONCATENATEX ( Top5Products, [Product Name], ", " )

This formula creates a measure called "Top 5 Products by Sales", which will display the top 5 products by sales amount. It first creates a variable called "Top5Products" which calculates a table of the top 5 products by sales amount. It does this by using the CALCULATETABLE function, which evaluates a table expression in a modified filter context.

The table expression used is the VALUES function on the 'Product' table, which returns a table of distinct product names. This is then filtered down to only include the top 5 products based on their sales amount, using the TOPN function. The TOPN function returns the top N rows from a table, based on a given expression, which in this case is the Total Sales amount.

The Total Sales amount is calculated by the SUM function on the 'Sales' table, which sums up the 'Sales Amount' column. This is done within a SUMMARISE function, which groups the 'Sales' table by the 'Product Name' column, and calculates the Total Sales amount for each product.

Finally, the CONCATENATEX function is used to concatenate the product names into a single text string, separated by commas. The Top5Products variable is passed to the CONCATENATEX function, which iterates over each row in the table and concatenates the product names together. The resulting text string is then returned as the final result of the measure.

Final Thoughts

Understanding DAX is crucial for making the most out of Power BI's capabilities. While the examples provided here are just the tip of the iceberg, they demonstrate how DAX can be used to manipulate and analyse data in a variety of ways. By mastering the basics of DAX and gradually building upon them, users can unlock the full potential of Power BI and make data-driven decisions with ease. So, start exploring DAX and unleash the power of your data!


❤️ Enjoyed this article?

Forward to a friend and let them know where they can subscribe (hint: it's here).