How to Create Dynamic Cell References Using the INDIRECT Function in Excel

When you are building a complex financial dashboard in Microsoft Excel, you often rely on standard cell references like =A1 to pull data. However, standard cell references are rigid. If you want a formula to pull data from a completely different sheet based on a user’s selection from a drop-down menu, a standard reference will instantly fail. You cannot type ="Sheet"&B1&"!A1" and expect Excel to execute the math; it will just output a dead text string. To force Excel to read a literal text string and mathematically convert it into a live, functioning cell reference, you must use the INDIRECT function.

How the INDIRECT Function Works

The INDIRECT function is a translation engine. It looks at a piece of text (like the word “C5”), recognizes that it looks exactly like an Excel grid coordinate, and instantly reaches into cell C5 to extract the live data.

The syntax requires a single, primary argument: =INDIRECT(ref_text)

Imagine Cell D1 contains the literal text: "B2"

Cell B2 contains the number: 5000

If you click into Cell E1 and type =D1, Excel will simply output the text “B2”. However, if you type:

=INDIRECT(D1)

Excel reads the text “B2” inside D1, translates it into a live coordinate, jumps over to cell B2, and outputs the number 5000.

Building Dynamic Sheet References

The true power of INDIRECT is its ability to dynamically change which worksheet a formula is looking at, without you ever having to rewrite the formula.

Imagine you have 12 worksheets named “Jan”, “Feb”, “Mar”, etc., and cell Z100 on every sheet contains that month’s total revenue.

On your Master Dashboard sheet, in cell A2, you have a drop-down menu where the user selects a month (e.g., “Feb”). You want cell B2 to instantly display that specific month’s revenue.

You must construct a text string that looks exactly like a standard cross-sheet reference (e.g., 'Feb'!Z100), and wrap it in the INDIRECT function:

=INDIRECT("'" & A2 & "'!Z100")

When the user changes the drop-down menu in A2 from “Feb” to “Mar”, the text string instantly recalculates to 'Mar'!Z100. The INDIRECT function reads the new string, breaks the connection to the February sheet, reaches into the March sheet, and pulls the new revenue data. This allows you to build massive, interactive dashboards that require zero manual formula updates.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.