=FILTER(array, include, [if_empty])
| Argument | Required | Description |
|---|---|---|
| array | Required | The range or table to filter — all columns you want in the output, e.g. A2:C100. |
| include | Required | A logical expression that produces TRUE or FALSE for each row in array. Rows where include is TRUE are returned. For example B2_B100="North" or C2:C100>500. |
| if_empty | Optional | What to return when no rows match — a text string like "No results" or an empty string. Without this, FILTER returns #CALC! when nothing matches. |
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Region | Sales |
| 2 | Alice | North | 4200 |
| 3 | Bob | South | 3100 |
| 4 | Carol | East | 5500 |
| 5 | Dan | North | 3800 |
| 6 | Ella | South | 4900 |
| 7 | Finn | North | 5100 |
| 8 | Gia | East | 2800 |
| 9 | Hugo | North | 4700 |
| 10 | Iris | South | 3600 |
| 11 | Jo | East | 4100 |
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Region | Sales |
| 2 | Alice | North | 4200 |
| 3 | Bob | South | 3100 |
| 4 | Carol | East | 5500 |
| 5 | Dan | North | 3800 |
| 6 | Ella | South | 4900 |
| 7 | Finn | North | 5100 |
| 8 | Gia | East | 2800 |
| 9 | Hugo | North | 4700 |
| 10 | Iris | South | 3600 |
| 11 | Jo | East | 4100 |
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Filter Region | Rep | Region | Sales |
| 2 | South | Alice | North | 4200 |
| 3 | Bob | South | 3100 | |
| 4 | Carol | East | 5500 | |
| 5 | Dan | North | 3800 | |
| 6 | Ella | South | 4900 | |
| 7 | Finn | North | 5100 | |
| 8 | Gia | East | 2800 | |
| 9 | Hugo | North | 4700 | |
| 10 | Iris | South | 3600 | |
| 11 | Jo | East | 4100 |
=FILTER(A2:D100,B2:B100="North","No results")
=FILTER(A2:C100,C2:C100>1000,"No results")
=FILTER(A2:D100,B2:B100=G1,"No results")
=FILTER(A2:C100,A2:A100<>"","No results")
=FILTER(A2:C100,MONTH(B2:B100)=MONTH(TODAY()),"No results")
=FILTER(A2:C11,B2:B11="North","No results")
=FILTER(A2:C11,B2:B11=E1,"No results")
=FILTER(A2:C11,(B2:B11="North")*(C2:C11>4000),"No results")