Give XLOOKUP a whole column of lookup values and it returns a whole column of results — one formula instead of one per row. The result spills automatically and stays in sync.
The example
A column of IDs resolved to names in one formula.
| A | B | |
|---|---|---|
| 1 | ID | Name |
| 2 | 101 | Bo |
| 3 | 102 | Ann |
The formula
One formula, many results:
How it works
An array lookup value spills array results:
- Pass a range (not a single cell) as the lookup value:
E2:E100. - XLOOKUP returns a result for each value, spilling down the column.
- It stays linked to the input — add an ID and the result list grows (if the input spills too).
- Works with INDEX/MATCH in 365 as well:
=INDEX(names, MATCH(E2:E100, ids, 0))spills similarly.
One formula beats a thousand. A single spilling XLOOKUP is lighter and tidier than copying a formula down 1,000 rows — and there’s only one place to edit. Combine with FILTER or UNIQUE inputs to look up a dynamic set of keys.
Try it: interactive demo
IDs (one per line) → names, all at once.
Variations
INDEX/MATCH spill
365 array MATCH:
With default
Per-row not-found:
Look up unique keys
Resolve a distinct set:
Pitfalls & errors
Spill space. The results spill below the formula — keep that column clear or get #SPILL!.
Don’t also fill down. One spilling formula covers all rows; copying it down on top of the spill causes conflicts.
365/2021 only. Array-input lookups need dynamic arrays.
Practice workbook
Frequently asked questions
How do I look up a whole column of values at once in Excel?
Can INDEX/MATCH spill too?
Why do I get #SPILL!?
Stop fighting formulas. Learn them in a day.
This recipe is one of hundreds of real-world formulas we teach. Our Excel Formulas & Functions class covers lookups, logic, text, and dynamic arrays hands-on — live in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.
See the Formulas & Functions Class