FILTER blocked by note
A FILTER in D1 spills down but D3 has a manual note, causing #SPILL! until the note moves.
#SPILL! means a dynamic array formula tried to fill multiple cells but something blocked the spill range. Another value, merged cells, or a table in the way stops the output. Clear the obstruction or move the formula to open space.
Learn #SPILL! when using FILTER, UNIQUE, SORT, SEQUENCE, or single-cell formulas that spill down or across modern Google Sheets.
Do not fight spills by deleting neighboring data without checking whether those cells held formulas that other tabs reference.
Click the cell with #SPILL! and look for the dashed border showing intended spill area.
Delete or move content in any cell inside that dashed rectangle.
Unmerge cells in the spill path; merged cells block arrays.
Move the formula to a column with enough empty rows below.
Use ARRAY_CONSTRAIN if you only need a fixed number of output rows.
Avoid placing two spill formulas whose output ranges overlap.
A FILTER in D1 spills down but D3 has a manual note, causing #SPILL! until the note moves.
Two UNIQUE formulas side by side overlap spill columns.
SEQUENCE spills into merged cells in row 1 and fails until unmerged.
Build this without starting from a blank cell
Use a Better Sheets tool for #SPILL! error, then watch a walkthrough when you want the full pattern.
FILTER returns only the rows from a range that meet one or more conditions. Conditions are boolean arrays the same height as the data. FILTER spills results automatically, so it replaced many INDEX/SMALL helper-column patterns for live subsets.
Read guide →UNIQUE extracts a deduplicated list from a column or table. Optional arguments control whether duplicates appear by row, by column, or with occurrence counts. It powers dropdown source lists, category tabs, and data cleanup without manual copy-paste.
Read guide →ARRAYFORMULA tells Google Sheets to treat a formula as an array operation so one expression fills many cells at once. It is common with IF, VLOOKUP, and math on full columns before dynamic arrays made many patterns automatic. It still matters for legacy sheets and explicit control.
Read guide →ARRAY_CONSTRAIN wraps an array formula result and returns only the first num_rows and num_columns of that output. It prevents huge spills, fits charts to fixed ranges, and stabilizes ranges for IMPORTRANGE wrappers when you need predictable dimensions.
Read guide →Done reading about #SPILL! error?
Membership unlocks 636+ tutorials, unlimited generators, and every template. Practical lessons. Zero fluff.
Need this once
Jump to a free tool or a single tutorial for this topic.
Learning Sheets for real
Unlock the full library, generators, and templates with membership.