Excel FILTER Function NOT Working

If you just need to excel filter function not working and move on, the boxed answer at the top is all you need. The rest of this page is for when you want to understand why it works in Excel, adapt it to a trickier version, or make it robust enough to hand to a colleague. We keep the opening short on purpose — the depth is here when you want it, not in your way when you don’t.

Exact answer

In Excel: use =FILTER(array, include, "No results") — a dynamic-array function that returns every row of array where the include condition is TRUE, spilling the matches automatically.

Syntax

=FILTER(array, include, [if_empty])

Arguments

ArgumentDescription
arrayrequiredThe range to filter — the rows or columns you want returned.
includerequiredA boolean array or condition that is TRUE for the rows to keep, such as B2:B100="West".
if_emptyoptionalThe value to return when nothing matches, for example "No results"; without it an empty match gives #CALC!.

Related functions

UNIQUEXLOOKUP
Annotated stepsExcel
1

Click an empty cell with room below for the matching rows to spill.

2

Type =FILTER( and select the range you want returned as array, such as A2:B100.

3

Type a comma, then the condition as include — for example A2:A100="West".

4

Add a comma and a fallback in quotes, like "No results", so an empty match does not return #CALC!.

5

Close the bracket and press Enter; for AND multiply conditions with *, for OR add them with +.

Ctrl+CthenCtrl+Shift+V+Cthen+Ctrl+VPaste values · WindowsMac

What this does

FILTER is the dynamic-array FUNCTION in Excel 365 and Excel 2021 — not the AutoFilter button on the ribbon. You give it a range and a condition, and it returns all the rows where the condition is TRUE, spilling the matching rows into the cells below. Combine conditions with * for AND and + for OR. The optional if_empty argument supplies a fallback when nothing matches; without it an empty result returns a #CALC! error. Like all spilling functions it needs empty cells below and returns #SPILL! if the spill range is blocked. Keep the inputs visible and clearly labelled and the whole thing stays auditable — anyone who opens the file later, including you, can see at a glance exactly what feeds the result and change one assumption without hunting through the formula. The difference between a quick fix and a sheet you can trust is the extra minute you spend validating “excel filter function not working”. Start on a copy or a tiny sample, keep the affected formula visible, and compare the result with the tool above before you touch the real workbook. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. The point is a data step that keeps your analysis trustworthy, but the practical win is that someone else can open the file and understand what happened without asking you.

A worked example

A table has regions in A2:A100 and sales in B2:B100. =FILTER(A2:B100, A2:A100="West", "No results") spills every West row — both columns — beneath the formula, or shows "No results" if there are none. For two conditions, multiply for AND: =FILTER(A2:B100, (A2:A100="West")*(B2:B100>1000), "No results") returns only West rows above 1000. Use + for OR: (A2:A100="West")+(A2:A100="East"). FILTER is the modern way to extract matching rows into a live, self-updating list — for reports, dashboards and dynamic dropdowns — replacing manual AutoFilter steps and clunky helper-column formulas. If there is any chance you will reuse this, drop it into a small template tab right now: a labelled input area on the left and the formula beside it, checked once against the tool above. Next time the same question comes up, the answer is a single paste away instead of a rebuild from memory.

In Google Sheets

Google Sheets handles this almost identically to Excel. The formula syntax above is the same, and the menu lives under a slightly different label rather than a ribbon tab. Use the platform toggle at the top of the page to switch every keyboard shortcut between Windows and Mac, and expect at most cosmetic differences in naming. Nothing on this page is behind a login: the tool runs entirely in your browser, the formula is shown in full with one-click copy, and the steps work the same on Windows and Mac. That is the whole promise here — the exact answer, a way to prove it on your own numbers, and just enough context to make it stick. The short version of “excel filter function not working”: the answer is at the top of this page, the tool proves it on your own numbers, and the sections above explain why it holds so the next variation does not stump you. Excel rewards people who reference cells instead of typing values and who keep inputs separate from formulas, because that is what makes a result you can audit months later. Build it once, deliberately, with the live tool as a check, and you convert a one-off lookup into a reusable skill — which is the whole point of learning the why and not just the what.

Common mistakes

  • Confusing the FILTER function with AutoFilter — AutoFilter is a manual button that hides rows on screen, while FILTER is a formula that returns matching rows as a spilled result.
  • Omitting if_empty, so a query with no matches returns a #CALC! error instead of friendly text — add a third argument like "No results".
  • Using AND() or OR() to combine conditions, which collapses the arrays to a single value; multiply with * for AND and add with + for OR instead.

Frequently asked questions

What is the difference between the FILTER function and AutoFilter?

AutoFilter is the manual ribbon feature that hides non-matching rows in place. The FILTER function is a formula that returns a new spilled list of the matching rows and recalculates automatically when the data changes.

How do I filter on two conditions?

Combine the conditions with arithmetic: multiply for AND and add for OR. =FILTER(A2:B100, (A2:A100="West")*(B2:B100>1000)) keeps rows that are West AND over 1000; use + instead of * for OR.

Why does FILTER return #CALC! or #SPILL!?

#CALC! means nothing matched the condition — add an if_empty argument such as "No results". #SPILL! means the cells where the result needs to land are not empty; clear the range below the formula.