Main content

Excel #SPILL! Error: Fix Blocked Array Formulas

By Szabó Gergő · Updated

#SPILL! means a dynamic array formula cannot write into its output area because another value, merge, or Table is in the way.

Syntax and arguments

=FILTER(array, include, [if_empty])
array
The source that would spill several cells.
include
The condition that sizes the result.

#SPILL! examples

01
Select the spill range

FILTER is in G2 and G5 has a leftover note.

=FILTER(A2:C100,B2:B100="East","")

Click the #SPILL! cell, note the dashed border, and clear G3:I20 or wherever Excel wanted to write.

02
Move the formula out of a Table

UNIQUE sits inside an Excel Table column.

=UNIQUE(Table1[Customer])

Place this formula in a cell outside the Table so the spill is not constrained to one row.

03
Unmerge the output area

G2:H2 is merged.

=SORT(A2:A50)

Unmerge before spilling. Dynamic arrays cannot write through merged cells.

Common mistakes

  • Blocking the spill with a header you typed next door

    Leave a blank block under and to the right of the formula equal to the result size.

  • Implicit intersection in old Excel

    #SPILL! appears in Microsoft 365. Older Excel may need Ctrl+Shift+Enter or a different approach.

  • Whole-column UNIQUE on a used sheet

    Limit the array to the data rows so the spill does not fight used cells far below.

#SPILL! FAQ

How do I see what is blocking the spill?

Select the formula cell. Excel outlines the intended range and often lists the reason in the warning.

Can I spill into a Table?

Not as a multi-cell spill. Keep dynamic arrays outside Tables, or use helper columns inside the Table.

Does #SPILL! mean the formula is wrong?

The formula may be correct. The worksheet layout is blocking the output.