Skip to main content
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.

Frequent Visitor

Filter MTD Query with custom date range


I have used the TOTALMTD and DATESMTD function in my measures but now need to figure out how to filter it to a custom date range for each month. The month's we use dont exactly follow the Calendar month - e.g May starts on Mya 1 but ends June 6. Every month is slightly different too.

The formula is currently as follows:


MTD = TOTALMTD('Core Measures'[Variance],SouthDATA[Production Date])
Is there any way to filter one more level using Production Month, using the same functions, or do I have to create new ones?
Community Support
Community Support

Hi @Aahil10,

Time intelligence functions not suitable for custom date ranges or field calculations, they are based on the auto-generated hidden calendar.

Auto date/time in Power BI Desktop - Power BI | Microsoft Docs

In my opinion, I'd like to suggest you use the date function manually to filter the custom date range and add the custom field as filter conditions.

If you are confused about the coding formula, please share some dummy data to test.

How to Get Your Question Answered Quickly

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
Super User
Super User

@Aahil10 , I such case base on start date of period and end date of period create following columns in your date table


Period Rank = RANKX(all('Period'),'Period'[year period],,ASC,Dense) 


Period Rank = RANKX(all('Period'),'Period'[period start date],,ASC,Dense) 

Period Day = DATEDIFF('Date'[Period Start Date],'Date'[Date],Day)+1

This Period = CALCULATE(sum('order'[Qty]), FILTER(ALL('Period'),'Period'[Period Rank]=max('Period'[Period Rank])))
Last Period = CALCULATE(sum('order'[Qty]), FILTER(ALL('Period'),'Period'[Period Rank]=max('Period'[Period Rank])-1))


PTD = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Period Rank]=max('Date'[Period Rank]) && [Period Day] <=max([Period Day])))
LPTD = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Period Rank]=max('Date'[Period Rank])-1 && [Period Day] <=max([Period Day])))

Helpful resources

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

April Fabric Community Update

Fabric Community Update - April 2024

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

March 2024 PBI Gallery Image

Power BI Monthly Update - March 2024

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