Improved

MAP and FILTER now spread results across cells

MAP and FILTER results now spread across as many cells as the result needs, instead of compressing into a single cell. Drop the formula in once, and the values fan out into the surrounding range — the same way IMPORTRANGE has worked for ranges since April.

How it looks

=MAP(A1:A10, LAMBDA(x, x * 2))

Type that into B1, and B1 through B10 fill with the doubled values. The cell you typed into becomes the anchor; the cells it fills are ghosts that read their value from the anchor's formula.

=FILTER(A2:A100, B2:B100 = "open")

Pass the range you want back as the first argument and a parallel range of conditions as the second. The result is a column that's exactly as tall as the matching rows — one row per match, no padding, no JSON-shaped placeholder.

What you can do with it now

  • Reference any cell in the result. =B5 picks up the 5th value from a MAP anchored at B1, instead of having to parse a stringified array.
  • Chart, sort, and aggregate the output directly. Spilled cells are first-class — point a SUM, a chart series, or another formula at the spilled range and it just works.
  • Compose freely. Feed a FILTER into a MAP, or a MAP into a SUM — each step's output is real cells the next step can see.

Anchor and ghost behavior

The anchor cell is the only one that holds the formula; selecting any ghost shows the anchor's formula in the formula bar with a "Go to anchor" link. If something blocks the spill (you've already got data in the way), the anchor shows #SPILL! and tells you which cell is in the way — clear that cell and the spill lands.

Existing sheets get fixed up automatically

If you have older MAP or FILTER formulas that were saved before this change, they'll quietly re-evaluate the next time you open the doc and start spilling properly — no action needed on your end.