Formula example
FILTER Rows by Date Formula Example
Return all sales rows where the Date column is on or after the date in F1. If F1 is 2026-02-01, the sample formula returns the two February rows.
Copyable formula
=IFERROR(FILTER(A2:D100, A2:A100>=F1), "No matches")With F1 set to 2026-02-01, the formula returns the rows for 2026-02-03 and 2026-02-15.
Useful variations
=IFERROR(FILTER(A2:D100, A2:A100>=F1), "No matches")Works in Excel 365 and Google Sheets when F1 is a real date.
=IFERROR(FILTER(A2:D100, A2:A100<F1), "No matches")Use < or <= when the report should return rows before a cutoff date.
=IFERROR(FILTER(A2:D100, (A2:A100>=F1)*(A2:A100<G1)), "No matches")F1 is the start date and G1 is the exclusive upper boundary.
=IFERROR(FILTER(A2:D100, A2:A100>=F1, A2:A100<G1), "No matches")Google Sheets can pass each condition as a separate FILTER argument.
Sample data
| Date | Region | Product | Amount |
|---|---|---|---|
| 2026-01-04 | East | Widget | 420 |
| 2026-01-12 | West | Widget | 310 |
| 2026-02-03 | East | Gadget | 275 |
| 2026-02-15 | East | Widget | 640 |
When to use this formula
- You need matching rows, not a single total.
- The source data has a real Date column and users choose a start date in a cell.
- You want a clear No matches message when the date filter returns no rows.
Use real dates, not typed text
F1 should contain a spreadsheet date value. If the date was imported as text, convert it first or the comparison can return the wrong rows.
Excel and Google Sheets difference
A single date condition uses the same FILTER pattern in Excel 365 and Google Sheets. For multiple date conditions, Excel commonly multiplies the conditions inside one include argument, while Google Sheets can pass each condition as its own argument.
Use an exclusive upper boundary
For date ranges, use A >= start date and A < next day or next month. The less-than upper boundary keeps rows with time values inside the correct date window.
Returned rows from the sample data
| F1 date | Condition | Returned rows |
|---|---|---|
| 2026-01-12 | Date >= F1 | 2026-01-12, 2026-02-03, and 2026-02-15 |
| 2026-02-01 | Date >= F1 | 2026-02-03 and 2026-02-15 |
| 2026-03-01 | Date >= F1 | No matches |
Date operator guide
| Need | Condition | Use when |
|---|---|---|
| On or after a date | A2:A100>=F1 | A rolling report starts at F1 |
| Before a date | A2:A100<F1 | A cutoff excludes the date in F1 |
| Between dates | (A2:A100>=F1)*(A2:A100<G1) | Excel needs both boundaries |
| Between dates in Google Sheets | A2:A100>=F1, A2:A100<G1 | Sheets FILTER accepts separate conditions |
Formula explanation
- A2:D100 is the range returned by FILTER.
- A2:A100>=F1 keeps only rows on or after the date in F1.
- IFERROR returns a friendly message instead of a raw no-match error.
Common errors
- The date cell must contain a real date value, not a date-looking text string.
- FILTER output needs empty spill space below and to the right.
- Use an exclusive upper boundary such as <G1 when source dates may include times.
- For multiple conditions, use the correct Excel or Google Sheets condition syntax.
Build your own version
Use the formula builder for this pattern: FILTER Formula Builder.
Related formulas
FAQ
Does FILTER work in older Excel?
FILTER requires dynamic array Excel. Older versions need helper columns, Advanced Filter, or Power Query.
Can I filter before a date too?
Yes. Change >= to <, <=, or another comparison operator depending on whether the boundary date should be included.
Why does FILTER return no rows for a date that exists?
The most common cause is a text date in either the source column or the criteria cell. Convert both sides to real dates and check for hidden time values.
How do I filter between two dates in Google Sheets?
Use FILTER(A2:D100, A2:A100>=F1, A2:A100<G1) and wrap it in IFERROR if you want a friendly no-match message.