FILTER returns only the rows that meet your conditions, as a live list that updates when the data changes.
Syntax
=FILTER(array, include, [if_empty])
array is the data to return, include is the test, and if_empty is the text to show when nothing matches.
One condition
=FILTER(A2:D100, C2:C100="North") returns all rows where region is North.
AND: multiply the conditions
=FILTER(A2:D100, (C2:C100="North")*(D2:D100>5000))
The result is a row only when both tests are true.
OR: add the conditions
=FILTER(A2:D100, (C2:C100="North")+(C2:C100="South"))
A row is returned when either test is true.
Show a message when nothing matches
=FILTER(A2:D100, C2:C100="East", "No results")
Filter and sort together
=SORT(FILTER(A2:D100, C2:C100="North"), 4, -1) sorts the filtered rows by the 4th column, largest first.
Tips
- The include range must have the same number of rows as the array.
- Always wrap each condition in brackets when using * or +.
- Leave empty space below and beside the formula so it can spill.