Function Problems

How to Use a Spill Range with FILTER and INDEX in Excel 365

Amos GikundaAmos Gikunda Nov 10, 2026 869 views

Question details

The user needs to return corresponding values from an Excel table based on multiple criteria defined within a dynamic spill range, allowing the final results to automatically expand and contract.

How to Use a Spill Range with FILTER and INDEX in Excel 365
Product
Excel 365
Device & OS
not provided
Scenario
Filtering data based on a dynamic array of models to extract a consolidated list of available options (like power output) for each item.
Observed behavior
Excel does not natively support returning an array of arrays, resulting in calculation errors when attempting to pass a spill range directly into a standard FILTER or INDEX function.
Before you start

Ensure you are using Microsoft Excel 365 or a newer version, as the solution relies heavily on modern dynamic array functions like REDUCE, LAMBDA, and VSTACK.

Solution 1Recommended

Combine Spill Ranges using REDUCE, LAMBDA, and VSTACK

Use this advanced formula to iterate through the spill range and stack the multiple returned arrays into a single, seamless dynamic column.

Because Excel treats an array of arrays as an error, passing a spill range directly into a FILTER function requires a workaround. By leveraging the REDUCE function alongside LAMBDA, you can instruct Excel to process each item in your dynamic range individually.

The VSTACK function is then used to vertically append each individual array result, producing one consolidated output.

1
Identify your data table and spill range reference

Locate the exact name of your Excel data table (e.g., Table1) and the dynamic spill range cell containing your filtering criteria (e.g., F3#).

2
Construct the REDUCE and LAMBDA loop

Write the core iteration formula: =REDUCE("", F3#, LAMBDA(u, v, VSTACK(u, FILTER(Table1[Power (kW)], Table1[Combined Values]=v, "")))). This loops through the F3# range and stacks the results vertically.

3
Drop the initial placeholder

Wrap your REDUCE formula in the DROP function to remove the initial empty placeholder string: DROP(REDUCE(...), 1).

4
Sort and extract unique entries

To clean up the final output and prevent duplicates, wrap the entire statement in SORT(UNIQUE(...)). Your final formula will dynamically expand and contract based on the initial spill range.

Combine Spill Ranges using REDUCE, LAMBDA, and VSTACK
Formula Complexity Warning: While highly effective, nested formulas combining REDUCE and LAMBDA can be difficult for other users to maintain. Consider adding comments or documenting the formula structure in adjacent cells.
Advanced Array Tools

Handle Dynamic Arrays and Complex Formulas Effortlessly with WPS Office

WPS Office Spreadsheet provides excellent support for modern dynamic array calculations, making it a powerful and intuitive tool for extracting data with advanced functions like FILTER, UNIQUE, and SORT.

  1. 1. Open your workbook in WPS Spreadsheet: Launch WPS Office and open your .xlsx document containing the data table and criteria.
  2. 2. Input your dynamic array formula: Select the target cell and enter your filtering formula using the supported dynamic array functions.
  3. 3. Verify the spilled results: Press Enter. WPS Spreadsheet will automatically calculate and spill the dynamic array down the corresponding columns seamlessly.
Full compatibility with modern Microsoft Excel (.xlsx) formats and dynamic arraysSupports powerful data filtering functions including FILTER, UNIQUE, and SORTLightweight, fast execution, and completely free to download
QA img-9

Frequently Asked Questions

What does the hash (#) symbol mean at the end of a cell reference in Excel?

The hash symbol indicates a spilled range. For example, F3# refers to the entire dynamic array of values that begins in cell F3 and expands automatically based on the formula's results.

Why does Excel return an error when I use FILTER inside another array function?

Excel's calculation engine does not currently support 'arrays of arrays.' If a formula attempts to return multiple separate arrays inside another single array calculation without explicitly flattening them, it triggers a calculation error.

Can I use older Excel versions to execute REDUCE and LAMBDA?

No, functions like REDUCE, LAMBDA, VSTACK, and the dynamic spill range behavior are exclusive to Microsoft Excel 365, Excel 2021, and modern web versions.

How does the VSTACK function help with dynamic arrays?

VSTACK combines multiple arrays by stacking them vertically into one single array. When combined with REDUCE, it safely appends the varying array results of each iteration, creating one consolidated list that Excel can easily process.