Cursus
The #SPILL! error in Excel is a direct result of the powerful dynamic array functionality introduced in Excel 365. While it may seem frustrating at first glance, this error is actually a helpful signal that something, often a cell blockage, is preventing your formula from displaying all its intended results.
Dynamic arrays allow formulas to return multiple values into neighboring cells automatically, but they also introduce new behaviors and, with them, new types of errors. Rather than seeing #SPILL! as an obstacle, view it as an opportunity to refine your spreadsheet’s logic, layout, and efficiency.
In this guide, I will explain the different causes of the #SPILL! error and how to troubleshoot using practical examples. If you are getting started in Excel, our Introduction to Excel course covers essential skills like navigating the interface, understanding data formats, and working with basic functions.
What Is the Spill Error in Excel?
The Excel #SPILL! error indicates that a formula is trying to return multiple values, but something is blocking the output from “spilling” into the necessary range of cells. This concept comes from Excel 365’s dynamic array functionality, where a single formula can automatically populate results across multiple adjacent cells, known as the spill range.
Think of it like trying to pour water into a row of empty glasses: If some of the glasses are already full (cells already contain data or are blocked), the water can’t flow properly, and Excel throws a #SPILL! error to let you know. This is a big shift from older versions of Excel, which used something called implicit intersection, only returning a single value from a formula, even if it referenced a range. With dynamic arrays, Excel is smarter and more powerful, but it also requires more awareness of what’s happening in surrounding cells.
Common Causes of the #SPILL! Error
The #SPILL! error can show up for several reasons, and understanding the root cause helps you fix it quickly. Below are the most common causes, along with practical examples and how you can recognize or troubleshoot each one.
Merged cells
If any cell in the spill range is merged, the formula cannot spill. In the example below, you get the #SPILL! error since cells “B3” and “C3” are merged, and the formula can’t spill into “B3”.

Dynamic arrays inside tables
Dynamic array formulas do not work inside Excel Tables created with Ctrl + T. Their structured referencing format conflicts with the spilling behavior. In the example below, Excel will return a #SPILL! error because dynamic arrays cannot expand within a table.

Obstructed spill range
The most common causes of the #SPILL! error are something physically or invisibly blocking the cells where the formula wants to spill. Visible obstructions include existing data, formulas, or text in the target cells. In the example below, the #SPILL! error occurs since cell “B4” already contains data.

Invisible obstructions can be empty strings (""), spaces, or hidden formatting. When this happens, Excel outlines the intended spill area with a dotted border and displays an error icon that you can click for details.

Syntax errors or workbook link issues
Incorrect formula syntax or broken links to external workbooks can also trigger the #SPILL! error.
Formula size is unknown or too large
You will get a #SPILL! error if using formulas that generate very large arrays, such as =RANDARRAY(1000000,1) or those referencing entire columns like =A:A. Such formulas can exceed Excel’s row or column limits, or Excel may run out of memory when processing the array.
How to Fix a #SPILL! Error Step by Step
Resolving a #SPILL! error in Excel can be quick if you follow a structured approach. Here’s a step-by-step guide to identifying and correcting the issue.
Step 1: Identify the cause
Start by clicking the warning icon next to the #SPILL! cell. If the Select Obstructing Cells option appears, use it to highlight the exact cells blocking the spill.

Step 2: Clear the spill range
If the formula is blocked by other content:
- Select the cells outlined with the dotted spill border.
- Go to the Home tab > Clear > Clear Contents or Clear All.

Step 3: Unmerge cells or move the formula
If merged cells are blocking the spill:
- Select the merged cells and go to Home > Merge & Center > Unmerge Cells.

To visually center text without merging cells, use Center Across Selection in Format Cells > Alignment.

Alternatively, move your formula to an area without merged cells to avoid the #SPILL! error.
Step 4: Adjust table layouts
Since dynamic arrays don’t work inside Excel Tables:
- Right-click inside the table > Table > Convert to Range.
- Then re-enter your formula outside the table area.

I would recommend planning your dynamic array formulas to be located away from Excel Tables whenever possible.
Step 5: Use the @ operator for single values
You can use the @ operator to get only a single value from a dynamic formula (not a spilled range). For example, the formula =@A2:A10 returns only the first item (A1).

However, =A2:A10 spills results to other cells to return the whole range.

Step 6: Test formulas in blank areas
If you're still unsure what's causing the issue, copy the formula into a completely blank part of the worksheet. This approach helps isolate whether the error is due to the formula itself or obstructions in surrounding cells.
Troubleshooting Examples
Now that we have looked at how to solve the #SPILL! error in Excel, below are practical troubleshooting examples using common Excel functions and dynamic arrays.
VLOOKUP() returns a #SPILL! error
You might assume VLOOKUP() always returns a single value, but when paired with a range of lookup values like A2:A10, it tries to output multiple results across many rows.
In the example below, Excel tries to return 10 values (one for each lookup), but a #SPILL! error occurs since cells below the formula are not empty.

To fix this issue, make sure the destination range (in this case, the next 10 rows) is empty, then reapply the formula.

FILTER(), INDEX()-MATCH(), and IF() examples
Dynamic array-enabled formulas like FILTER(), INDEX MATCH, and IF() can generate multiple outputs depending on logic and references. Poor layout planning often leads to #SPILL!.
Consider the example below for ‘Trait matching across columns’. The formula below returns all rows in column A where "Red" and "Large" are matched. If the spill range is blocked, you will get a #SPILL! error.
=FILTER(A2:A100, (B2:B100="Red")*(C2:C100="Large"))

Similarly, you can use the INDEX()-MATCH() set of functions to return multiple lookup results for a range of inputs. But if the spill range below the formula is blocked or misaligned, it can’t spill.
=INDEX(A2:A100, MATCH(E3:E10, B2:B100, 0))

Consider using LET() and SEQUENCE() for clarity and control. For example, in the formula below, FILTER() spills a list, but TEXTJOIN() compresses it into a single cell, so no spilling is needed. This is a good design pattern when you want dynamic results but avoid #SPILL!.
=LET(colors, FILTER(A2:A10, B2:B10="Blue"), TEXTJOIN(", ", TRUE, colors))

Best Practices to Prevent Spill Errors
To reduce the chances of encountering #SPILL! errors, it is important to consider the following best practices when designing and maintaining your Excel workbooks:
-
Leave room for dynamic arrays to expand: Always ensure there is enough empty space below and to the right of where a dynamic array formula may expand as the data grows.
-
Avoid using dynamic formulas inside structured tables: Since Excel tables don't support spilling, always use dynamic array formulas outside of tables, or convert the table back to a normal range if you need to use such formulas.
-
Use @ when only one result is expected: If you need just a single value from a formula that could potentially spill, prefix it with the
@operator. -
Document layout logic using comments or cell coloring: Use cell notes, comments, or fill colors to indicate areas reserved for dynamic formulas visually. This helps others understand how your sheet is meant to work when sharing your workbooks.
-
Clean sheets regularly to avoid invisible obstructions: Clear out unused formatting, empty string formulas (
""), and phantom spaces. Use “Clear All” instead of just “Delete” to reset cells in the spill range truly.
Summary: What to Remember
#SPILL! errors occur when a formula tries to return multiple values, but something blocks the output range. Rather than being just a nuisance, this error helps highlight layout issues or problems with the formula itself. Excel’s built-in tools, like the error icon and Select Obstructing Cells option make it easier to identify and fix these issues. By planning your layout with dynamic arrays in mind, you can avoid future errors and create cleaner, more efficient spreadsheets. In many ways, the #SPILL! error is a helpful feature, bringing visibility to potential problems and encouraging better spreadsheet design.
I recommend taking our Data Analysis in Excel course to learn about how to generate insights, and I recommend our Excel Fundamentals skill track to learn more about the functions available in the latest Excel versions. Our Advanced Excel Functions course is also a perfect course for exploring advanced referencing and lookups, which I started to show throughout this article.
Advance Your Career with Excel
Gain the skills to maximize Excel—no experience required.
FAQs
What does the #SPILL! error mean in Excel?
The #SPILL! error means a formula is trying to return multiple values, but something is blocking the output.
How do I find what’s blocking the spill?
Click the error icon and choose “Select Obstructing Cells” to highlight the issue.
How do I fix a #SPILL! error quickly?
Clear the obstructing cells or move the formula to an open area.
How can I prevent #SPILL! errors in the future?
Leave enough space for dynamic arrays, avoid tables, and keep spill ranges clear.
Why is the #SPILL! error actually helpful?
It highlights layout or formula issues, making it easier to spot and fix spreadsheet problems early.

