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

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 =
'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?

1 ACCEPTED SOLUTION
Super User

@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
)```

8 REPLIES 8
Anonymous
Not applicable
`YTD Prev Year = CALCULATE( [YTD], SAMEPERIODLASTYEAR('Date'[Date]))`

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

Super User

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.

Super User

@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

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