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. **You may watch the full video of this tutorial at the bottom of this blog.**

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 th**e 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 Columngives more aesthetic while using aMeasureallows 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

MAXXDAX 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.

******* Related Links *********First Purchase Of Customer Insight Using DAXLast Purchase Date In Power BI: When Did Your Customers Make Their Last Purchase?Working With Iterating Functions In DAX**

## 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

******* Learning Power BI? *********FREE COURSE – Ultimate Beginners Guide To Power BI****FREE COURSE – Ultimate Beginners Guide To DAX****FREE – 60 Page DAX Reference Guide Download****FREE – Power BI Resource****Enterprise DNA Membership****Enterprise DNA Online****Enterprise DNA Events**