 # Using The MAXX DAX Function In Power BI To Calculate Recent Values In Your Data

This tutorial will talk about a common scenario that’s frequently asked in the Enterprise DNA support forum. You’re going to learn how to work out the most recent or the last value in your data using the MAXX and FILTER DAX functions in Power BI.

For this example, there’s a list of data and within that list the customer is referenced multiple times. So, you want to work out the recent value for that particular customer name.

The example presented in the forums was in the form of a survey data. You want to work out the most recent or the last time that a particular customer took the survey.

There are a couple of ways to solve this. You can perform the solution using calculated columns or measures.

Using a Calculated Column gives more aesthetic while using a Measure allows your models to be more dynamic.

Here’s how to work out the most recent date for any dimension in your data set using two solutions.

## Solution #1: Using Calculated Columns

Here’s how to solve the problem using Calculated Columns.

### 1. Create A New Column

The first step is to create a new column in the table that was given as an example in the forums. This new column will contain the Max Date.

This is the logic used on the formula for the Max Date:

Whenever you encounter problems in Power BI that require the maximum date or number, the MAXX DAX function is the best one to use.

This function is the key in creating the solution for this example.

### 2. Create A Variable

Now, you need to create a new variable using the VAR function. In this example, the new variable is called CurrentName.

For each different row, you want to work out the name of each person. This part is quite easy since you simply need to reference the column name in a Calculated Column.

At every single row, you only want to isolate the people with the same name as the current row.

Looking at the table, you can see that it has three different names with two entries for each name.

You need to isolate those names and then work out the maximum date that a particular person has transacted with you. The transaction could be in terms of completing a purchase or survey.

### 3. Create A FILTER Statement

To isolate the names, you first need to use the FILTER and ALL function.

This will remove all the filters within the table. This will also iterate through every single row regardless of context.

Then, you need to work out if the Name in the Survey Data is equal to the CurrentName variable.

## 4. Use The MAXX Function

Now, the MAXX DAX function is going to get a table containing only two rows. This is the result of filtering and iterating through each row to find out if the name is equal to the current name. In this case, the current name is John Smith.

You then need to evaluate the max. The MAXX DAX function calculates the max for you. So, all you need to do is put the column in the formula:

When you change the Max Date column’s format into a date, you’ll see that the max date for John Smith is February 23.

The max date for Nancy Jones is September 25, while it’s September 22 for Elaine Anderson.

This is a very simple technique and its logic can be applied to different scenarios. You can use this to find out the last purchase or sale amount.

## Solution #2: Using A Measure

Here’s how to solve this problem using Measures.

Using measures allows you to work out the last date and then branch out into other calculations.

This is the best way to run any calculations in Power BI.

### 1. Create A Table

First, you need to create a table.

This table only contains two columns. The information contained in the other columns are irrelevant for this calculation.

### 2. Create A New Measure

You then need to create a new measure.

This measure has the same formula that was used in the calculated columns solution. However, you need to change the Survey table to Survey Data.

And instead of simply referencing the column name, you need to use the SELECTEDVALUE function.

This captures what context you’re in.

SELECTEDVALUE enables you to grab the text value from its context.

This technique is also very dynamic compared to other calculations since you can take out the date column and only retain the Max Date for each customer.

## Conclusion

Solutions don’t have to be difficult. They can be done using simple ways.

For this example, you can either go for the Calculated Columns solution, or use Measures.

Hopefully, you understood the concept of how to manipulate the virtual table within the MAXX DAX function.

You can also use the FILTER function to iterate through information and then adjust the virtual table based on the parameter you put into the FILTER statement. MAXX will then do the work from here.

All the best,

Sam

***** Related Course Modules *****
Time Intelligence Calculations
Unique Analytical Scenarios
Mastering DAX Calculations

This site uses Akismet to reduce spam. Learn how your comment data is processed.