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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Previous Year YTD, DAX help

Hi guys, 

I am having problem with YTD for previous year.


I am using following formula so i can compare YTD till current date

YTD LY = 
CALCULATE([YTD],DATEADD( FILTER(DATESYTD('Date'[Date]),
                                'Date'[Date]<=LASTNONBLANK('Data'[Date],[Amount Sum])
                                ),
               -1,Year
               )
       )
 

 

But problem i am having is that calculation starts only after first record in curret year. It follwing picture we can see that calcualtion starts from January 11th instead of January 1st. Is there a way to fix this? 

YTD PY.PNG

 

 

Download PBIX

 

 

1 ACCEPTED SOLUTION

@Anonymous 

Edited

 

YTD LY V2_B =
VAR _Last =
    CALCULATE ( LASTNONBLANK ( Data[Date]; [YTD] ); ALL ( 'Date'[Date] ) )
VAR _LastVal =
    CALCULATE (
        CALCULATE ( [YTD]; SAMEPERIODLASTYEAR ( 'Date'[Date] ) );
        'Date'[Date] = _Last
    )
RETURN
    IF (
        SELECTEDVALUE ( 'Date'[Date] ) <= _Last;
        CALCULATE ( [YTD]; SAMEPERIODLASTYEAR ( 'Date'[Date] ) );
        _LastVal
    )

 

 

 

View solution in original post

8 REPLIES 8
Anonymous
Not applicable

YTD Prev Year = CALCULATE( [YTD], SAMEPERIODLASTYEAR('Date'[Date]))

Prev YTD Fixed.png

Anonymous
Not applicable

Hi @Anonymous 

Thanks for quick response i already tried something similar but problem is that like that i will have entire previous year shown,

and i want only to se PY YTD till last nonblank value of current year with this

 'Date'[Date]<=LASTNONBLANK('Data'[Date],[Amount Sum])
Anonymous
Not applicable

I have also added few more months in date table. PBIX is available on same link

Hi @Anonymous 

 

This might be a quick and dirty solution:

 

YTD LY V2 =
VAR _Last =
    CALCULATE ( LASTNONBLANK ( Data[Date]; [YTD] ); ALL ( 'Date'[Date] ) )
RETURN
    IF (
        SELECTEDVALUE ( 'Date'[Date] ) <= _Last;
        CALCULATE ( [YTD]; SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
    )

or this if you want to show the result only where [Amount PY] is non-blank 

 

YTD LY V3 =
VAR _Last =
    CALCULATE ( LASTNONBLANK ( Data[Date]; [YTD] ); ALL ( 'Date'[Date] ) )
RETURN
    IF (
        SELECTEDVALUE ( 'Date'[Date] ) <= _Last
            && NOT ISBLANK ( [Amount PY] );
        CALCULATE ( [YTD]; SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
    )
Anonymous
Not applicable

Thanks @AlB 

I fount this one lamost perfectly fitting my needs.

Is there maybe a way to fill other cell values with last YTD value (44 in thi case), like we have for normal YTD function.

So basically YTD PY would summ all PY values will last value of current day, and after that one it will just show lates value.

 

 

YTD PY 2.PNG

@Anonymous 

Edited

 

YTD LY V2_B =
VAR _Last =
    CALCULATE ( LASTNONBLANK ( Data[Date]; [YTD] ); ALL ( 'Date'[Date] ) )
VAR _LastVal =
    CALCULATE (
        CALCULATE ( [YTD]; SAMEPERIODLASTYEAR ( 'Date'[Date] ) );
        'Date'[Date] = _Last
    )
RETURN
    IF (
        SELECTEDVALUE ( 'Date'[Date] ) <= _Last;
        CALCULATE ( [YTD]; SAMEPERIODLASTYEAR ( 'Date'[Date] ) );
        _LastVal
    )

 

 

 

Anonymous
Not applicable

Thanks @AlB, you are a life saver Smiley Happy

Anonymous
Not applicable

This woul add more data from PY to the YTD sum.

Considering this case i would like to remain on sum of 44 since this is all PY data available till January 13th 

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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