Function Problems

How to Filter Excel Rows Using Multiple Criteria from a Range in WPS Spreadsheets

Huda QurayshiHuda Qurayshi Nov 13, 2026 869 views

Question details

The user needs to filter an Excel Table by matching a column against multiple values in a separate criteria range, using dynamic array formulas to return all matching rows without #SPILL! or #CALC! errors.

How to Filter Excel Rows Using Multiple Criteria from a Range in WPS Spreadsheets
Product
WPS Office Spreadsheets
Device & OS
not provided
Scenario
The user has a table such as Table1 and a criteria list such as Criteria[Criteria], and needs to return the header plus every row that matches at least one criterion.
Observed behavior
The formula should return the header row and all matching table rows, show a friendly "No matches" message when no rows match, and avoid #SPILL! or #CALC! errors.
Before you start

Make sure your data is in an Excel Table such as Table1, and that your criteria list is a separate column or table named Criteria. Confirm that the spill area below or beside the formula cell is empty before entering the formula.

Solution 1Recommended

Use VSTACK, FILTER, and MMULT to Match Any Criterion from a Range

Best when you want one dynamic formula that returns the table header and all rows matching any value in a criteria column.

This formula works in Excel 365 and in current WPS Spreadsheets versions that support dynamic array functions. The MMULT calculation compares each Name cell against the criteria list and returns a 1 if at least one criterion matches.

1
Select the output start cell

Click an empty cell that has enough blank rows and columns around it for the full spill range, so the returned table does not overwrite existing data.

2
Type the dynamic criteria formula

Enter =VSTACK(Table1[#Headers],FILTER(Table1,MMULT(--(Table1[Name]=TRANSPOSE(Criteria[Criteria])),SEQUENCE(ROWS(Criteria[Criteria]),,1,0))>0,"No matches")) and press Enter.

3
Confirm the spill area is empty

If you see #SPILL!, select the formula cell, identify the blocking cell in the spill range, and delete or move that value so the formula has enough empty cells.

4
Check the criteria range

Remove blank cells or unintended zero values from Criteria[Criteria] because they can change the match result or create #CALC! when the list is empty.

Use VSTACK, FILTER, and MMULT to Match Any Criterion from a Range
Result: The formula returns the Table1 header row plus all rows where the Name column equals at least one value in Criteria[Criteria]. When nothing matches, it returns "No matches" instead of an error.

Filter Rows by Multiple Criteria in WPS Spreadsheets

WPS Spreadsheets supports Excel-compatible dynamic array formulas, so you can use FILTER, VSTACK, and MMULT to return matching rows and handle no-match results without switching tools.

  1. 1. Open your workbook in WPS Spreadsheets: Launch WPS Office and open the .xlsx workbook that contains the table and criteria range.
  2. 2. Select the output cell: Click an empty cell where you want the filtered rows to spill.
  3. 3. Enter the FILTER formula: Type =VSTACK(Table1[#Headers],FILTER(Table1,MMULT(--(Table1[Name]=TRANSPOSE(Criteria[Criteria])),SEQUENCE(ROWS(Criteria[Criteria]),,1,0))>0,"No matches")) and press Enter.
  4. 4. Confirm the results: Verify that rows matching any criterion appear. If not, clear the spill area and review the criteria list for blanks or zeros.
Returns the header and matching rows in one formulaHandles dynamic criteria lists without helper columnsDisplays a friendly "No matches" message instead of #CALC!Maintains Excel .xlsx compatibility for sharing
QA img-9

Frequently Asked Questions

Why does the formula return #SPILL! in WPS Spreadsheets?

A #SPILL! error means something is already in the cells where the formula wants to output its results. Click the formula cell and look for the spill range marker, then delete or move any values in that range so the formula has enough empty cells.

Why do I get #CALC! when no rows match the criteria?

The #CALC! error occurs when FILTER has no matching rows and no fallback is supplied. Use the third argument of FILTER, such as "No matches", or make sure your criteria list is not empty and contains no blank or zero values.

Can I use a normal criteria range instead of an Excel Table?

Yes. Instead of Criteria[Criteria], use a fixed range such as $G$2:$G$10 in the formula, and lock the reference if you copy the formula. The rest of the MMULT logic stays the same.

How can I return rows that do not match any value in the criteria list?

Use a BYROW and SEARCH formula to test each row against the criteria list. For a non-matching formula, enter =FILTER(Table1,BYROW(Table1[values],LAMBDA(x,NOT(OR(ISNUMBER(SEARCH(x,Table2[Criteria]))))))).

Does this dynamic array method work in Excel and WPS Spreadsheets?

Yes. Current WPS Office versions support Excel-compatible dynamic array functions including FILTER, VSTACK, SEQUENCE, and MMULT. Use the latest version and save the file as .xlsx for the best compatibility.