INDIRECT turns a text string into a real cell or range reference — useful when the range you need is itself stored as data.
INDIRECT converts a text string, like "B5" or "Sheet2!A1", into an actual working cell reference that other formulas can use.
This matters because most formulas need a real reference typed directly — INDIRECT lets you build that reference dynamically from a string, a dropdown selection, or another cell's content.
=INDIRECT(ref_text, [a1_style])| Argument | Description |
|---|---|
| ref_text required | A text string that looks like a cell reference, e.g. "B5" or "Sheet2!A1". |
| a1_style optional | TRUE (default) for normal A1-style references, FALSE for R1C1 style. |
It recalculates on every workbook change, which can slow down large sheets that use it heavily.
=INDIRECT("B5")Identical to just typing =B5, but here it is built from a text string — the real use comes when that string is dynamic.
=INDIRECT(A1&"!B2")If A1 contains the text "Sheet2", this returns the value of B2 on Sheet2 — letting a dropdown in A1 pick which sheet to pull from.
=SUM(INDIRECT(A1))If A1 contains the text "C2:C10" (perhaps from a data-validation dropdown), this sums that exact range.
=INDIRECT("Q"&B1)If B1 contains 4, this builds and resolves the reference "Q4" — useful for jumping between named ranges.
"B5" works. "Cell B5" or "b 5" does not — INDIRECT is strict about format.
INDIRECT cannot reference another workbook unless that workbook is currently open.
Like OFFSET, it is volatile and can slow down heavy spreadsheets if used hundreds of times.
ExcelPro has hands-on INDIRECT exercises built into real job scenarios — free to start.
Try INDIRECT exercises →