Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
I have to calculate the previous day's values from my table, for which I have created a measure and it is working fine
Solved! Go to Solution.
Try using REMOVEFILTERS to explicitly remove the filters on Year and Month
var _PrevDate =
calculate(
MAX(data[Created Date]),
data[Created Date] < SELECTEDVALUE(data[Created Date]),
REMOVEFILTERS(<Year Column>),
REMOVEFILTERS(<Month Column>)
)
You'll probably need the REMOVEFILTERS on the _Index calculation too.
Best practice here would still be to use a date table. You could use LASTNONBLANKVALUE to go back to the previous date that exists in the data.
Hi @PaulOlding
Thanks for the solution. However, this is again giving me previous values for other dates & not for the last date of the previous month when I choose the first date of selected month. for example, if i select July 1, it should give me previous values for June 30th. However since I need a slicer for month, I am getting a blank for this criteria.
I havent created a date table if that is what you are asking since a lot of dates are missing in my data..so the year & month values are coming from my data itself
I did try @ValtteriN solution which has a calendar date part of the dax formula and so created a calendar table, but since there are a lot of missing date values, it essentially failed. Also, it didnt solve my query for the previous date value for the first date of selected month
Try using REMOVEFILTERS to explicitly remove the filters on Year and Month
var _PrevDate =
calculate(
MAX(data[Created Date]),
data[Created Date] < SELECTEDVALUE(data[Created Date]),
REMOVEFILTERS(<Year Column>),
REMOVEFILTERS(<Month Column>)
)
You'll probably need the REMOVEFILTERS on the _Index calculation too.
Best practice here would still be to use a date table. You could use LASTNONBLANKVALUE to go back to the previous date that exists in the data.
@PaulOlding - That worked! Thank you!
Final Dax:
previousdates =
var _PrevDate =
calculate(
MAX(data[Created Date]),
data[Created Date] < SELECTEDVALUE(data[Created Date]),
REMOVEFILTERS(data[Created Date].[Year]),
REMOVEFILTERS(data[Created Date].[Month])
)
var _Index = CALCULATE( [Current IndexValue],
FILTER(ALL(data[Created Date]),
data[Created Date] = _PrevDate) ]),
REMOVEFILTERS(data[Created Date].[Year]),
REMOVEFILTERS(data[Created Date].[Month])
)
return _Index
Hi,
Try something like this:
data:
Dax:
Note that the value returned is 30.6.2022 from test data -> the function works
In general I would avoid using multiple date filters since they will often conduse end-users.
I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!
My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/
Proud to be a Super User!
Hi @ValtteriN,
Thank you for your solution. However it didnt work for me..
As you can see, for the first date of the month, I am getting no values for the previous date..
if I change the dates, I do get values..
The behaviour suggests the year and month is in the filter context when _PrevDate is being calculated. If you select the 1st of the month there is no previous date in the same month.
Perhaps a revised _PrevDate will work
var _PrevDate =
calculate(
MAX(data[Created Date]),
data[Created Date] < SELECTEDVALUE(data[Created Date])
)
Check out the July 2025 Power BI update to learn about new features.
User | Count |
---|---|
22 | |
7 | |
6 | |
6 | |
6 |
User | Count |
---|---|
27 | |
12 | |
10 | |
9 | |
6 |