How to Use INDIRECT in Excel and the Risks
INDIRECT turns a text string into a live cell or range reference. In financial models it builds dynamic references, letting one formula pull from a sheet whose name lives in a cell, or assemble a range address on the fly. It is powerful for dashboards that switch tabs, but it is volatile and, critically, it breaks Excel's ability to trace where a value really comes from.
Syntax and how it works
The signature is =INDIRECT(ref_text, [a1]). INDIRECT reads ref_text as a string, interprets it as a reference, and returns the contents of that cell or range. The optional a1 argument is TRUE by default for A1-style addresses and FALSE for R1C1 style.
The key idea is indirection: the formula does not point at a cell, it points at a string that describes a cell. So =INDIRECT("B"&H1) builds the address B5 when H1 holds 5, and returns whatever is in B5. Because the reference is assembled from text, Excel does not see the target as a normal precedent.
Worked example: pull a value from a chosen sheet
A summary tab has a sheet name in H1, say Q2, and you want the total from cell B10 of whichever sheet H1 names. INDIRECT assembles the cross-sheet reference from text.
- Type the target sheet name, for example
Q2, intoH1. - Enter
=INDIRECT("'"&H1&"'!B10"). - The string builds to
'Q2'!B10, and INDIRECT returns the value held in cellB10of the Q2 sheet. - Change
H1toQ3and the same formula now readsB10from the Q3 sheet, with no edit to the formula itself.
| H1 holds | INDIRECT builds | Returns |
|---|---|---|
| Q2 | 'Q2'!B10 | B10 on the Q2 sheet |
| Q3 | 'Q3'!B10 | B10 on the Q3 sheet |
| FY | 'FY'!B10 | B10 on the FY sheet |
Changing the name in H1 redirects the formula without editing it.
Why it fits, and the cost it carries
INDIRECT shines when a model needs to switch its source by selection, such as a dashboard whose tab is chosen from a dropdown, or when range addresses must be assembled dynamically. It avoids dozens of near-identical formulas.
That flexibility comes at a real auditing cost that modelers must weigh before using it.
- INDIRECT is volatile, so it recalculates on every change anywhere in the workbook, which slows large models.
- Because the target is built from text, the cell it reads is not registered as a precedent, so Excel's Trace Precedents arrow finds nothing.
- Moving or deleting the referenced cell does not update the string, so the reference silently points at the wrong place or returns
#REF!. - Reviewers cannot tell at a glance which cell or sheet the formula actually depends on.
Common pitfalls in models
The biggest danger is invisible dependencies. Standard precedent tracing cannot follow an INDIRECT, so a value that looks isolated may quietly drive other cells, and an auditor can miss it entirely. Use INDIRECT sparingly and document every instance.
Sheet names with spaces need single quotes inside the string, as in 'Q2 Actuals'!B10, or the reference fails. And because INDIRECT only sees text, a typo in the assembled address returns #REF! rather than a helpful error, so test the string with a simple lookup before relying on it.
Find Dependents
Find Dependents maps the cross-sheet and external links a workbook actually relies on, helping surface the connections an INDIRECT obscures.
Get ModelMint See how it worksFAQ
What does INDIRECT do in Excel?
INDIRECT converts a text string into a live cell or range reference and returns the contents of that target. It lets a formula build its reference dynamically, for example pulling from a sheet whose name is stored in another cell.
Why can't I trace precedents through INDIRECT?
INDIRECT builds its reference from text rather than a direct link, so Excel never registers the target as a precedent. Trace Precedents shows nothing, which means the dependency is invisible to normal auditing and easy to overlook.
Is INDIRECT volatile and does it slow Excel down?
Yes. INDIRECT is a volatile function that recalculates on every change anywhere in the workbook, even unrelated edits. In large models with many INDIRECT formulas this can noticeably slow recalculation.