How it works.
FILTER is a dynamic array function. It scans a data range and returns all rows that match a true/false condition. The result automatically "spills" down and across to adjacent cells, updating in real-time as the source data changes.
💡 In simple terms.
Sifts through a table of data and extracts only the rows that match your criteria, spilling the results down the sheet.
"Think of this like sifting sand through a sieve. Only the grains that match your rule pass through, while the pebbles stay behind."
Formula syntax.
Standard Excel Notation=FILTER(array, include, [if_empty])[like_this] are optional; all other arguments are required.Formula arguments.
Every parameter accepted by the FILTER function is detailed below.
The range of cells you want to filter.
Example value:A2:B6A logical array condition that evaluates to TRUE or FALSE for each row.
Example value:B2:B6="Red"The value to return if no records meet the filter conditions.
Default: "No Matches"Simple example.
Step-by-Step ScenarioFilter Overdue Projects
Extract only the rows where the Status is "Overdue".
| Task Name | Status | Result Task | Result Status | Target Status |
|---|---|---|---|---|
| Database Setup | Completed | — | — | Overdue |
| API Design | Overdue | — | — | — |
| Frontend Layout | In Progress | — | — | — |
=FILTER(A2:B6, B2:B6="Overdue", "None")Evaluates FILTER over the sample table cells, placing the verified output in cell C2:D6.
Formula generator.
Full Generator WizardCustomize the argument fields below to generate a tailored FILTER formula ready to paste directly into your worksheet.
=FILTER()Expected result behavior.
Returns "Calculated output" based on sample evaluation criteria and active cell references.
Best Practices
- To combine conditions, use multiplication `*` for AND logic (e.g. `(B2:B6="Red")*(C2:C6>50)`) and addition `+` for OR logic.
- Ensure cells below the filter formula are completely empty to let the array spill successfully.
Common Mistakes
- If the spill range is blocked by existing text or numbers, the formula returns a #SPILL! error. Clear the blocking cells to fix it.
- FILTER is a dynamic array function and is only supported in Excel 365 and Excel 2021+.
Platform & version compatibility.
Verified platform compatibility matrix based on actual spreadsheet calculation engine specifications.
In Excel 2019, use Advanced Filter (Data tab), a PivotTable, or INDEX/MATCH array formulas.
Introduced in Excel 365 and Excel 2021 as part of the Dynamic Array engine. Not available in Excel 2019.
Native Google Sheets formula (available in Sheets since early versions). Note that parameter order is =FILTER(range, condition1, [condition2]) in both platforms.
Frequently asked questions.
Technical Q&AWhy does the FILTER function return a #CALC! error?↓
A #CALC! error indicates that no rows met your criteria and the optional third argument [if_empty] was left blank. Set [if_empty] to "No records" or "" to handle empty results.
What does the #SPILL! error mean when using FILTER?↓
A #SPILL! error occurs when the dynamic array results cannot expand because one or more cells in the output spill zone already contain existing text, numbers, or formatting. Clearing those obstructing cells immediately resolves the error.