FORMULAS & FUNCTIONS

How to Filter a Dynamic List with the FILTER Function

Use Excel’s FILTER function to return a dynamic list that updates automatically when the source data or criteria change.

Excel FILTER function returning a dynamic list based on multiple conditions
← Tutorial HubFormulas & Functions

The FILTER function creates a new list containing only the rows that meet your condition. In current Excel versions, the result can spill into the cells below and beside the formula automatically, so you do not copy the formula down row by row. Start with one clear condition, confirm the returned rows, then add more criteria only when needed.

Build the FILTER dynamic-array function formula

Assume a source table is in A2:D100, Status is column C, and the selected status is in G2.

=FILTER(A2:D100,C2:C100=G2,"No matching records")

A second useful version is:

=FILTER(A2:D100,(C2:C100=G2)*(D2:D100>=H2),"No matching records")

FILTER returns every row where the include test is TRUE. Multiplication combines conditions as AND; addition can be used for OR when the logical tests are converted to ones and zeros.

Step-by-step formula workflow

  1. Choose a clear source range with matching row counts.
  2. Create one logical test and confirm it returns TRUE and FALSE correctly.
  3. Use that test as the FILTER include argument.
  4. Add a useful if-empty message.
  5. Leave enough blank space for the results to spill and test changes to the source.
Excel FILTER setup showing source table, criteria cells, and dynamic spill destination

Common formula mistakes

MistakeWhy it matters
Blocking the spill rangeAny value inside the output area causes #SPILL!.
Using include ranges of different heightsThe logical tests must align with the returned rows.
Returning entire columns unnecessarilyLarge spill formulas can slow the workbook.
Ignoring blanks in the sourceBlank rows may appear when the source range is larger than the data.
Assuming FILTER exists in old versionsIt requires a version that supports dynamic arrays.
Excel FILTER worked example combining multiple conditions and returning matching rows dynamically

Worked FILTER example with AND and OR

Suppose G2 contains Open and H2 contains 1000. The formula =FILTER(A2:D100,(C2:C100=G2)*(D2:D100>=H2),"No matching records") returns only rows that are both Open and at least 1000. If the rule should return Open or Pending rows, combine the status tests with addition and test that the result is greater than zero.

When the source is an Excel Table, structured references make the formula easier to maintain as rows are added. Keep the output area clear and avoid typing directly inside the spill result. If another formula needs the entire result, reference the spill anchor with #. Also decide how blanks should behave before combining conditions; an empty criterion cell can unintentionally filter out every row unless the formula explicitly treats blank as “all.”

Excel FILTER verification checking multiple criteria, blank results, spill range, and source changes

Frequently asked questions

How do I combine two conditions?

Multiply the Boolean tests for AND or add them for OR, then test the result.

Can FILTER return selected columns only?

Yes. Point the array argument to the columns you want or combine it with CHOOSECOLS in supported versions.

Why do I see #CALC!?

No records matched and the optional if-empty argument was omitted.

Will it update automatically?

Yes. The spilled result recalculates when the source data or criteria change.

Continue building reliable Excel workflows

Browse more lessons in the OneXcel Tutorial Hub or explore free Excel resources.

Discover more from OneXcel Studio

Subscribe now to keep reading and get access to the full archive.

Continue reading