Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Getting values based on latest available dates incl. filtered earlier dates

Hello,

 

I'm trying to create a table that shows the fields based on the latest available date by default, as well as when filtered.

 

Sample data:

CustomerDateSale
Client 131-Jan-2010
Client 129-Feb-2015
Client 231-Dec-208
Client 331-Dec-202
Client 331-Jan-205
Client 429-Feb-209
Client 229-Feb-206

 

Output 1 (Default):

CustomerDateSale
Client 129-Feb-2015
Client 229-Feb-206
Client 331-Jan-205
Client 429-Feb-209

 

Output 2 (Filtered for 31-Jan-20):

CustomerDateSale
Client 131-Jan-2010
Client 231-Dec-208
Client 331-Jan-205

 

LatestDate = MAXX(Table1, Table1[Date]) can generate Output 1, but is missing Client 2 details for Output 2. 

 

Guidance from the gurus will great gratitude! 

1 ACCEPTED SOLUTION

Hi @Anonymous 

I change my measure and build a slicer to achieve your goal.

Slicer table:

 

Slicer = VALUES(Table1[Date])

 

Result:

3.png

Measure

 

LatestDate =
VAR _SELECT =
    SELECTEDVALUE ( Slicer[Date] )
VAR _A =
    MAXX (
        FILTER (
            ALL ( Table1 ),
            Table1[Customer] = MAX ( Table1[Customer] )
                && Table1[Date] <= _SELECT
        ),
        Table1[Date]
    )
VAR _B =
    MAXX (
        FILTER (
            ALL ( Table1 ),
            Table1[Customer] = MAX ( Table1[Customer] )
                && Table1[Date] <= TODAY ()
        ),
        Table1[Date]
    )
RETURN
    IF ( ISFILTERED ( Slicer[Date] ), _A, _B )
LastSales = SUMX(FILTER(ALLEXCEPT(Table1,Table1[Customer]),Table1[Date]=[LatestDate]),Table1[Sale])

 

As default, we will get values based on the latest available dates compare with toady.

1.png

Today() = 2020/8/14 so the available dates should be 2020/1/31 and 2020/2/29.

Result:

2.png

Select 2020/1/31, the available dates should be 2020/1/31.

Result:

4.png

Select 2020/2/29, the available dates should be 2020/1/31 and 2020/2/29.

Result:

5.png

Select 2020/12/31, the available dates should be 2020/1/31 , 2020/2/29 and 2020/12/31.

Result:

6.png

If this reply still couldn't help you to solve your problem, please tell me more details.

I am confused about why when you select 2020/1/31, the result will show 2020/12/31. Could you tell me your calculate logic?

7.png

You can download the pbix file from this link: Getting values based on latest available dates incl. filtered earlier dates

 

Best Regards,

Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. 

View solution in original post

7 REPLIES 7
amitchandak
Super User
Super User

@Anonymous , Try with Customer in visual table

lastnonblankvalue(Table[Date], Sum(Table[Sale]))
max(Table[Date])

 

Anonymous
Not applicable

@amitchandak 

 

Thanks for the response. 

 

I've set 
SaleMeasure = lastnonblankvalue(Table[Date], Sum(Table[Sale]))

DateMeasure = max(Table[Date])

 

and my output when filtering Date = "31-Jan-20" is still 

CustomerDateMeasureSaleMeasure
Client 131-Jan-2010
Client 331-Jan-205

 

I think it's because my Filter is based on Date because I can't put DateMeasure in the Filter section - any idea how to do this?



Hi @Anonymous 

You may try my measure.

I build a table like yours to have a test.

1.png

Measure:

LatestDate = MAXX(FILTER(all(Table1),Table1[Customer]=MAX(Table1[Customer])), Table1[Date]) 
LastSales = SUMX(FILTER(ALLEXCEPT(Table1,Table1[Customer]),Table1[Date]=[LatestDate]),Table1[Sale])

Result:

Default:

2.png

Filter 2020/1/31 it will still show the latest date in measure:

3.png

You can download the pbix file from this link: Getting values based on latest available dates incl. filtered earlier dates

 

Best Regards,

Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. 

Anonymous
Not applicable

Hi @v-rzhou-msft 

 

Thank you for building out the dataset. However, your outputs still do not match the desired output of "latest available value, subject to any date filters". Have highlighted difference in blue font.

 

Default:

CustomerLatestDateLatestSale
Client 129-Feb-2015
Client 229-Feb-206
Client 331-Jan-205
Client 429-Feb-209

 

Filter (31-Jan-20):

CustomerLatestDateLatestSale
Client 131-Jan-2010
Client 231-Dec-208
Client 331-Jan-205
Anonymous
Not applicable

Sorry @v-rzhou-msft , just noticed your dates are Jan-20, Feb-20 and Dec-20. The max portion works for the Default mode, but still doesn't work for the filtered dates.

 

I want the same output for Default as the filter for Dec-20, but only 2 entries are shown for your workbook.

 

 

Hi @Anonymous 

I change my measure and build a slicer to achieve your goal.

Slicer table:

 

Slicer = VALUES(Table1[Date])

 

Result:

3.png

Measure

 

LatestDate =
VAR _SELECT =
    SELECTEDVALUE ( Slicer[Date] )
VAR _A =
    MAXX (
        FILTER (
            ALL ( Table1 ),
            Table1[Customer] = MAX ( Table1[Customer] )
                && Table1[Date] <= _SELECT
        ),
        Table1[Date]
    )
VAR _B =
    MAXX (
        FILTER (
            ALL ( Table1 ),
            Table1[Customer] = MAX ( Table1[Customer] )
                && Table1[Date] <= TODAY ()
        ),
        Table1[Date]
    )
RETURN
    IF ( ISFILTERED ( Slicer[Date] ), _A, _B )
LastSales = SUMX(FILTER(ALLEXCEPT(Table1,Table1[Customer]),Table1[Date]=[LatestDate]),Table1[Sale])

 

As default, we will get values based on the latest available dates compare with toady.

1.png

Today() = 2020/8/14 so the available dates should be 2020/1/31 and 2020/2/29.

Result:

2.png

Select 2020/1/31, the available dates should be 2020/1/31.

Result:

4.png

Select 2020/2/29, the available dates should be 2020/1/31 and 2020/2/29.

Result:

5.png

Select 2020/12/31, the available dates should be 2020/1/31 , 2020/2/29 and 2020/12/31.

Result:

6.png

If this reply still couldn't help you to solve your problem, please tell me more details.

I am confused about why when you select 2020/1/31, the result will show 2020/12/31. Could you tell me your calculate logic?

7.png

You can download the pbix file from this link: Getting values based on latest available dates incl. filtered earlier dates

 

Best Regards,

Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. 

Anonymous
Not applicable

Thanks a lot @v-rzhou-msft 

 

The new Latest Date measure + slicer work perfectly!

FYI, the output I showed was what I wanted to get but could not seem to get with the earlier measures, but your current solution has solved this.

 

Thanks again!!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.