How to Filter a SharePoint List Between Two Dates in Power Apps
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
- Filtering a table: How to Filter a Table in Power Apps with Filter.
- What delegation is: What Is Delegation in Power Apps? (With SharePoint Lists).
- A Date or Date and time column in the list. In the example it's WorkDate, a date-only column.
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):
With(
{Rows: Filter(OvertimeEntries, EmployeeEmail = MyEmail && WorkDate >= Date(2026, 10, 26) && WorkDate <= Date(2026, 11, 1))},
Concat(Rows, Text(WorkDate, "dd/mm/yyyy"), ", ")
)
EmployeeEmail = MyEmailkeeps 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:

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:
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 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:
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
| Mistake | What happens | Do this instead |
|---|---|---|
Year(WorkDate) = 2026 or Month(WorkDate) = 11 in the filter | Functions on the column can't be sent to SharePoint | Compare the column with dates: >= and <= |
< for the last day | The last day is left out | <= the last day, or < the day after |
| Comparing with dates typed as text | Text isn't a date | Date(2026, 11, 1) or a date variable |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| A delegation warning on the filter | Part of the condition depends on the row in a way SharePoint can't run | Keep 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 items | SharePoint blocks queries that have to work through more items than its list view threshold | Start 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
- Power Apps delegable functions and operations for SharePoint: the operators per column type.
- Delegation overview: constants in delegable formulas, and With tables.
