- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Last date in period issue when use DatesBetween
Hello,
It's the first time I am posting a question here. Hopefully I do it right. I have a question with Last date issue when use DATESBETWEEN function hope someone can help with.
I have a parameter table with parameter of 1-12
I also have a DimDate table with a InvoiceDate column and End of Month column.
What I am trying to achieve is to calculate sales based on period. If the parameter is 2, then I want to evaluate sales every 2 month as a period. For example, If the [End of Month] is 02/28/2022, then current period is 01/01/2022-02/28/2022, last period should be 11/01/2021-12/31/2021. However when I use the DATESBETWEEN function to get the last period, the last date is not showing as I would like because the last date in each month is differen: the last date in the last period is 12/28/2021, instead of 12/31/2021.
How can I get the correct last date for the last period? Thank you!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I suggest you write some custom time Intelligence. I talk about it here
https://exceleratorbi.com.au/dax-time-intelligence-beginners/
and here (additional features of a good calendar table)
https://exceleratorbi.com.au/power-bi-calendar-tables/
once you have a monthID column in your calendar table, use that to do your calendar time shift. All you need to do in the filter portion is filter the calendar table, you don't need all that extra datesbetween stuff.
FILTER(ALL(Calendar),Calendar[MonthID] >= MIN(Calendar[MonthID])-[Parameter value] &&
Calendar[MonthID] <= MIN(Calendar[MonthID]))
with the above filter, you can then extract the dates
CALCULATE(MIN(Calendar[Date]),
FILTER(ALL(Calendar),Calendar[MonthID] >= MIN(Calendar[MonthID])-[Parameter value] &&
Calendar[MonthID] <= MIN(Calendar[MonthID]))
)
* Matt is an 8 times Microsoft MVP (Power BI) and author of the Power BI Book Supercharge Power BI.
I will not give you bad advice, even if you unknowingly ask for it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you! your suggested solution is so much better!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I suggest you write some custom time Intelligence. I talk about it here
https://exceleratorbi.com.au/dax-time-intelligence-beginners/
and here (additional features of a good calendar table)
https://exceleratorbi.com.au/power-bi-calendar-tables/
once you have a monthID column in your calendar table, use that to do your calendar time shift. All you need to do in the filter portion is filter the calendar table, you don't need all that extra datesbetween stuff.
FILTER(ALL(Calendar),Calendar[MonthID] >= MIN(Calendar[MonthID])-[Parameter value] &&
Calendar[MonthID] <= MIN(Calendar[MonthID]))
with the above filter, you can then extract the dates
CALCULATE(MIN(Calendar[Date]),
FILTER(ALL(Calendar),Calendar[MonthID] >= MIN(Calendar[MonthID])-[Parameter value] &&
Calendar[MonthID] <= MIN(Calendar[MonthID]))
)
* Matt is an 8 times Microsoft MVP (Power BI) and author of the Power BI Book Supercharge Power BI.
I will not give you bad advice, even if you unknowingly ask for it.

Helpful resources
Subject | Author | Posted | |
---|---|---|---|
05-09-2024 08:59 AM | |||
07-10-2024 04:46 AM | |||
05-02-2022 01:29 PM | |||
07-25-2024 01:48 AM | |||
08-23-2024 08:05 AM |