If you are not a consistent user of Microsoft Power BI you are more than not unfamiliar with the term “DAX”, however that doesn’t mean that you haven’t been using it! Data Analysis Expressions or DAX is the library providing users with an array of methods to analyse and shape data, and is a core component of SQL Server Analysis Services, Power Pivot in Excel and Power BI Desktop. A good understanding of DAX can make report authoring more simple and more powerful. However, without a functional language background it can often be overwhelming for beginners and even some seasoned veterans!
So what is DAX?
DAX can be used to populate a new column in a table based on numbers, texts and related data. Like Excel (filing formulas up/down/right/left or table formulas) you write a DAX expression once for the column and it is evaluated for each row. The calculation is performed each time the data is refreshed. Also DAX is commonly used in measures, a value (often numeric) that is used in a visual or table of your report. The value is calculated every time the visual is refresh and the expression applies to that cell or element of the visual. So one measure may be calculated many times within the one visual, under different contexts. A valuable capability of DAX is the ability to modify that context to view data in a different way. A simple example of a measure is to calculate an average or total, and can be given a specific context such as a product colour, month of the year or any other attribute in the data model.
What’s so important about DAX?
It’s quite simple to create a new Power BI Desktop file and import some data into it. It is also relatively simple to create reports without using any DAX formulas at all. But, the difficulty comes when you need to analyze data and related data elements in the model (such as growth percentage across product categories rankings and statistical outcomes over different date ranges). As you become a more capable Business Intelligence creator, it is inevitable that you’ll need to learn and use DAX regularly. DAX formulas provide this capability and many other important capabilities as well. Learning how to create effective DAX formulas will help you extract the most useful information from your data. When you get the information you need, you can begin to solve real business problems that affect everything from your bottom line to the happiness of your clients.
Important things to know about DAX
1.Don’t worry about learning all functions in the beginning
DAX has many possible functions, and it can be hard to know where to start. Focus on the basic functions first:
SUM, AVERAGE, MIN, MAX
2.Learn the concepts
Instead of spending your time rote learning functions spend your time learning the core concepts and patterns of the language. This is the fastest and best way to learning DAX. Build a library of important DAX information and work in iterations. DAX may look like Excel functions but the underlying theory is very, very different. These fundamentals of the language must be understand early in the learning process.
3.Keep your functions as readable as possible
The nature of DAX functions means having a lot of calculations happening on a single line. So keeping your code legible is a priority. Delete unnecessary elements, use descriptive names, and be explicit with your references.
Object Names, Columns and Measures
- If you don’t need it, delete it
- Keep internal column names hidden
- Rename columns, use calculated columns & measures to define user-friendly names
- Use explicit measures were possible
4.Sort your measures by category
Have a mental template for the different types of calculated measures that you’ll encounter during the code process. Instead of starting over from scratch each time, you’ll already be halfway there with a rough outline for your function.
Define Measures in Categories:
- Simple aggregates
- Time variances
- Ratios & differentials
- Business – specific calculations
DAX can be confusing and challenging for new users and veterans alike. Hopefully after reading this article the language of DAX is a little less frightening.