Spill Range Error

There are two ways to “spill range error”: the quick way you copy and the durable way you understand. This page gives you both. The exact Excel answer is above; below, we build the small mental model that makes the fix stick, so the next variation of the same problem solves itself.

Exact answer

In Excel: in Microsoft 365 just type the formula and press Enter — it spills automatically; in older versions the same formula needs Ctrl+Shift+Enter, which is what the surrounding braces mean.

On this page7
Annotated stepsExcel
1

Write the formula against whole ranges rather than single cells.

2

On Microsoft 365 press Enter — a multi-value result spills into the cells below or beside it.

3

On Excel 2019 and earlier press Ctrl+Shift+Enter, and never type the braces yourself.

4

To refer to a whole spilled range elsewhere, use the top-left cell followed by # — D2#.

5

On #SPILL!, click the warning triangle: it names the obstruction, then clear those cells.

6

To edit a legacy CSE array you must select its whole block; Excel refuses to change part of one.

=SUM(B2:B100*C2:C100)
Ctrl+CthenCtrl+Shift+V+Cthen+Ctrl+VPaste values · WindowsMac

What this does

An array formula operates on whole ranges at once instead of a cell at a time. =SUM(B2:B100*C2:C100) multiplies each pair and totals the results in one step, with no helper column. The history matters because it explains almost every problem people hit: before Microsoft 365, such a formula had to be committed with Ctrl+Shift+Enter, and Excel showed it wrapped in braces {…} that you must never type yourself. Microsoft 365 replaced that with dynamic arrays: a formula returning several values simply SPILLS into the neighbouring cells, marked by a blue border, and the top-left cell is referenced elsewhere as B2# with a hash. The spill is also the source of the #SPILL! error, which means exactly one thing — something is in the way of the range the formula wants to fill. Clear the obstructing cells and it resolves. Old CSE formulas keep working in 365, and legacy files opened in 365 keep their braces. The same idea underpins a lot of everyday Excel work, so the few minutes spent getting it right here pay back across every sheet you build afterwards. Treat it as a pattern, not a one-off, and it stops being something you look up and starts being something you reach for. Treat “spill range error” as a small repeatable workflow rather than a one-off click you hope to remember next time. Use a small test block before the live file, so any surprise in the affected cells shows up while it is still harmless. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That turns a workflow that saves repeating the same clicks every week into a method you can reuse, explain, and defend when the workbook leaves your screen.

A worked example

Quantities in B2:B100 and unit prices in C2:C100, and you want the order total without a line-total column. =SUM(B2:B100*C2:C100) — press Enter on Microsoft 365, or Ctrl+Shift+Enter on Excel 2016, where it appears as {=SUM(B2:B100*C2:C100)}. On 365, =SORT(UNIQUE(A2:A500)) typed into one cell spills the whole distinct sorted list down the column; referring to it elsewhere as D2# keeps up as the list grows or shrinks. Dynamic arrays removed the single most confusing keystroke in Excel, and knowing which era a formula came from explains most of what looks broken about it. If there is any chance you will reuse this, drop it into a small template tab right now: a labelled input area on the left and the formula beside it, checked once against the tool above. Next time the same question comes up, the answer is a single paste away instead of a rebuild from memory.

In Google Sheets

Google Sheets handles this almost identically to Excel. The formula syntax above is the same, and the menu lives under a slightly different label rather than a ribbon tab. Use the platform toggle at the top of the page to switch every keyboard shortcut between Windows and Mac, and expect at most cosmetic differences in naming. Nothing on this page is behind a login or a download: the exact answer is at the top, and the detail below it is there for when you need it. That is the whole promise here — the answer first, and just enough context to make it stick. Here is the takeaway for “spill range error”: copy the answer if you are busy, but if you have a spare few minutes, rebuild the example in Excel yourself with the tool above open beside it. That single pass — type it, run it, watch the result move when you change an input — is what turns a formula you found into a technique you trust. Keep your inputs labelled and referenced, never hard-coded, and the same sheet stays correct and auditable as it grows. Done that way, you will not need to look this up again, and you will be the person others ask.

Common mistakes

  • Typing the braces by hand — that makes it text, not an array formula.
  • Pressing Enter on a pre-365 array formula, which usually returns just the first value with no error.
  • Applying an array formula to entire columns (B:B*C:C) and calculating a million rows for a hundred of data.
  • Treating #SPILL! as a formula error; it means the output range is blocked, nothing more.
  • Inserting a row inside a spill range and being surprised the result moves — the range belongs to the formula, not to the cells.

Frequently asked questions

What is an array formula?

One that works on whole ranges at once rather than a single cell, such as =SUM(B2:B100*C2:C100), which pairs up the values and totals the products with no helper column.

Do I still need Ctrl+Shift+Enter?

Not in Microsoft 365, where array formulas spill on plain Enter. In Excel 2019 and earlier, yes — the braces Excel shows are the sign it was committed that way.

What does #SPILL! mean?

The formula wants to fill a range that is not empty. Click the warning triangle to see what is in the way, clear it, and the result appears.

What does the # after a cell reference mean?

It refers to the whole spilled range starting at that cell — D2# is every cell the formula in D2 produced, however many that turns out to be.