How to Use a Spill Range with FILTER and INDEX in Excel 365
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.

- 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.
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.
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.
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#).
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.
Wrap your REDUCE formula in the DROP function to remove the initial empty placeholder string: DROP(REDUCE(...), 1).
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.

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. Open your workbook in WPS Spreadsheet: Launch WPS Office and open your .xlsx document containing the data table and criteria.
- 2. Input your dynamic array formula: Select the target cell and enter your filtering formula using the supported dynamic array functions.
- 3. Verify the spilled results: Press Enter. WPS Spreadsheet will automatically calculate and spill the dynamic array down the corresponding columns seamlessly.

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.




