cancel
Showing results for
Did you mean:

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Helper I

## Find a value associated with the latest date

I have a list of mileage reads and want to get the reading associated with the latest mileage date.

Because mileages are sometimes corrected I cannot simply grab the highest mileage reading because that value may not be accurate. For example, in the screen shot below we see the correct mileage for this vehicle is 106598 taken on 8/20. However, the highest reading is 140357 taken on 8/9.

What I want is a measure to give the different of the earliest and latest readings. Something like this but that does not use the max of meter but that uses the meter reading associted with the latest date Query1[METER_DATE].

Usage Measure = MAX(Query1[METER]) - MIN(Query1[METER])

1 ACCEPTED SOLUTION
Super User

Hi,

This measure works

`Measure = CALCULATE(SUM('Sheet 1'[METER]),LASTDATE('Sheet 1'[METER_DATE]))`

Hope this helps.

Regards,
Ashish Mathur
http://www.ashishmathur.com
12 REPLIES 12
Super User

Hi,

Regards,
Ashish Mathur
http://www.ashishmathur.com
Helper I

Sorry for the delay in responding. I have posted a test file here:

Anonymous
Not applicable
@cmccully

Did you attempt with what I recommend Ed in my last post as that worked?
Anonymous
Not applicable

Hey @cmccully

You can use calculate to:

2. For the MAX date

Maybe something like this:

```CALCULATE(
MAX(Query1[METER]) - MIN(Query1[METER]),
Query1[METER_DATE] = MAX(Query1[METER_DATE])
)```
Helper I

I get this error when using your formula in a measure:

A function 'MAX' has been used in a True/False expression that is used as a table filter expression. This is not allowed.

Anonymous
Not applicable

Hey @cmccully

I saw your response last night when I got home from work. My apologies.

I should have formatted the filter argument of Calculate differently:

```Latest Date Max_Min =
CALCULATE(
MAX(Query1[Meter]) - MIN(Query1[Meter]),
FILTER(
Query1,
Query1[Meter_Date] = MAX(Query1[Meter_Date])
)
)```

Here is a screenshot of my test:

Helper I

Sorry for taking so long to respond. I created a measure using your new DAX code but am still not getting anything. I posted a link below to the PBIX test file I am using.

Here is what it looks like when I try to use the measure:

I want to get the mileage 106878 as that is the reading associated with the latest date.

Thank you!

Super User

Hi,

This measure works

`Measure = CALCULATE(SUM('Sheet 1'[METER]),LASTDATE('Sheet 1'[METER_DATE]))`

Hope this helps.

Regards,
Ashish Mathur
http://www.ashishmathur.com
Regular Visitor

Hello there, nice, it worked on my side as well. One question... why can't I substitute the lastdate() with min() or max()?

Super User

You are welcome.  The LASTDATE() function returns a table of 1 row and 1 column whereas the MAX() function returns a single scalar value.

Regards,
Ashish Mathur
http://www.ashishmathur.com
Helper I

Thank you, that worked!

Super User

You are welcome.

Regards,
Ashish Mathur
http://www.ashishmathur.com