Skip to main content

How to Filter a SharePoint List Between Two Dates in Power Apps

· 7 min read
Jagdish Kumawat
Founder @ Dewiride

To get the SharePoint items between two dates, filter on the date column with >= the first date and <= the last: Filter(List, WorkDate >= FromDate && WorkDate <= ToDate). Both ends are included, and SharePoint can run the comparison itself, so the formula works on lists of any size without a delegation warning.

The example is the Overtime Timesheet app, which loads a person's overtime for the weeks around a month from its OvertimeEntries list.

Prerequisites​

What SharePoint Can Do Itself​

Microsoft's delegation table for SharePoint lists <, <=, <>, > and >= as delegable for DateTime columns, and conditions joined with And (&&) or Or (||) delegate too.

The dates you compare with can be worked out by any formula, as long as they don't depend on the row. The delegation overview says parts that evaluate to a constant value for all records, such as Date(2019, 3, 31), Today() or a variable, are sent to the data source as a constant and don't block delegation.

Step 1: Filter a Week​

To see the result in Studio's preview strip, I put a test formula into a text control's Text for a moment. Filter returns a table, so Concat joins the dates of what it finds into one line (How to Join Table Values into Text in Power Apps with Concat):

Any text control → Text
With(
{Rows: Filter(OvertimeEntries, EmployeeEmail = MyEmail && WorkDate >= Date(2026, 10, 26) && WorkDate <= Date(2026, 11, 1))},
Concat(Rows, Text(WorkDate, "dd/mm/yyyy"), ", ")
)
  • EmployeeEmail = MyEmail keeps it to my own entries.
  • Monday 26 October to Sunday 1 November is one week.
  • With holds the filtered rows; the delegation overview says tables kept by With, UpdateContext or Set are a static in-memory list, so Concat works on the rows SharePoint returned (How to Use the With Function in Power Apps).

The week has two entries, and the one on the last day, 1 November, is included:

The expanded formula bar with the With formula filtering OvertimeEntries from Date(2026, 10, 26) to Date(2026, 11, 1), and the preview strip reading 29/10/2026, 01/11/2026 with Data type text

Step 2: Check One Day in Summer Time​

Microsoft's date and time troubleshooting guide lists date-only values that show the wrong date for some users and time zones. 24 October 2026 was in British Summer Time, so I filtered from that day to the same day:

Any text control → Text
With(
{Rows: Filter(OvertimeEntries, EmployeeEmail = MyEmail && WorkDate >= Date(2026, 10, 24) && WorkDate <= Date(2026, 10, 24))},
Concat(Rows, Text(WorkDate, "dd/mm/yyyy"), ", ")
)

The entry dated that day came back, at both ends of the range:

The expanded formula bar with the same formula from Date(2026, 10, 24) to Date(2026, 10, 24), and the preview strip reading 24/10/2026 with Data type text

The example's site and browser are both on London time (How to Change the Time Zone of a SharePoint Site).

Step 3: Check for Warnings​

With the filter in the app, the App checker showed nothing under Formulas or Data source: no delegation warning. A filter that couldn't be delegated would show one (Fixed: Delegation Warning. The Highlighted Part of This Formula Might Not Work Correctly on Large Data Sets).

How the Example Uses It​

The My Overtime screen loads whole weeks, from the Monday of the month's first week to the Sunday of its last, so each week's total counts all seven days. The dates are worked out first, then the filter uses them:

Part of btnRefreshMO → OnSelect
With(
{
FromDate: MondayOf(locMonthMO),
ToDate: DateAdd(
MondayOf(DateAdd(DateAdd(locMonthMO, 1, TimeUnit.Months), -1, TimeUnit.Days)),
6,
TimeUnit.Days
)
},
With(
{
Loaded: Sort(
Filter(
OvertimeEntries,
EmployeeEmail = MyEmail && WorkDate >= FromDate && WorkDate <= ToDate
),
StartTime
)
},
...
)
)

Sort on a date column is delegable to SharePoint too. EmployeeEmail comes first and is indexed, which matters once a list passes 5,000 items: How to Index a Column in a SharePoint List.

Common Mistakes​

MistakeWhat happensDo this instead
Year(WorkDate) = 2026 or Month(WorkDate) = 11 in the filterFunctions on the column can't be sent to SharePointCompare the column with dates: >= and <=
< for the last dayThe last day is left out<= the last day, or < the day after
Comparing with dates typed as textText isn't a dateDate(2026, 11, 1) or a date variable

Troubleshooting​

SymptomLikely causeFix
A delegation warning on the filterPart of the condition depends on the row in a way SharePoint can't runKeep the column alone on one side of each comparison
An item on the last day is missing< instead of <=Use <=
The query fails once the list passes 5,000 itemsSharePoint blocks queries that have to work through more items than its list view thresholdStart the filter with an indexed column: How to Index a Column in a SharePoint List

FAQ​

Does this work on a date-and-time column?​

Yes, the same operators delegate for Date and time columns. Remember that a time is part of the value: <= Date(2026, 11, 1) means up to midnight at the start of 1 November.

How does Excel do this?​

Excel adds up values between two dates with SUMIFS and two conditions: How to Sum Values Between Two Dates in Excel with SUMIFS.

Conclusion​

Filter(List, DateColumn >= FromDate && DateColumn <= ToDate) returns the items between two dates, both included. Work out the dates outside the comparison, keep the column on its own, and SharePoint runs the filter without a delegation warning.

Additional Resources​