#SPILL! means Excel cannot place a formula’s multiple results in the worksheet. Select the formula cell, inspect the intended output area, and check the error menu for the specific cause. Clearing or moving a blocking entry often fixes it.
The dynamic array examples here work in Excel for Microsoft 365, Excel for the web, Excel 2021 and Excel 2024, including supported Mac editions. Excel 2016 and Excel 2019 do not provide these modern dynamic array functions. See Microsoft’s dynamic array guide.
Find the Cell Blocking the Spill
Select the #SPILL! cell to see the dashed border around the intended output. Open the warning menu and choose Select Obstructing Cells when available. Move useful entries elsewhere before clearing the obstruction. Formatting alone does not block a spill, but a space or a formula returning ="" can occupy a cell that looks empty.
A Reproducible #SPILL! Example
On a blank worksheet, type Keep this note in F3. Enter =SEQUENCE(3) in F2. The formula needs F2:F4, so the note in F3 produces #SPILL!. Move the note out of F2:F4, then clear F3. The formula returns 1, 2 and 3 in F2, F3 and F4. Edit the formula in F2; the other cells belong to its spill range.
For a second test, replace the note with ="" in F3. Although F3 looks blank, it still blocks the result. Move or remove that formula to restore the spill. Other spilled formulas can also occupy the required output cells; move one formula so their output areas do not overlap.
Merged Cells and Excel Tables
A spill cannot pass through merged cells. In the same example, merging F3:G3 blocks the result from F2. Unmerge those cells or move the formula to a clear area.
Spilled array formulas do not work inside Excel Tables. Put the output formula outside the Table; it can still refer to the Table’s source columns. Convert a Table to a normal range only if you intend to give up its Table behavior. For a row-by-row calculation inside a Table, use a formula that returns one value per row.
Worksheet Edge, Array Size and Memory
Excel has 1,048,576 rows. Entering =SEQUENCE(3) in F1048575 requests three rows, but only two remain, so the result is #SPILL!. Move the formula upward or reduce its output size.
An entire-column lookup value can also request too many results. If you want one result, use =VLOOKUP(A2,A:C,2,FALSE) rather than =VLOOKUP(A:A,A:C,2,FALSE). For an out-of-memory message, reduce the array or range being processed. See the VLOOKUP tutorial for exact-match examples.
Indeterminate Size and Other Causes
If a formula changes its output size between calculation passes, Excel may be unable to settle on a spill range. Replace a randomly changing size with a fixed number or a stable input. Check the specific error description before changing the formula: a non-adjacent reference is not, by itself, a standard #SPILL! diagnosis, and combining ranges with a comma is not a general fix.
Microsoft’s #SPILL! troubleshooting page lists the error categories. If none matches, check the formula’s required arguments and try a smaller, simpler calculation in a clear area.
Preventing Future #SPILL! Errors
Leave room for growing results, keep notes out of output areas, and avoid merged cells where an array will spill. A multi-column XLOOKUP needs clear cells to the right as well as a valid matching row. Fix the obstruction rather than wrapping the formula in IFERROR and hiding the cause.





