Exceljet

Quick, clean, and to the point

Dynamic worksheet reference

Excel formula: Dynamic worksheet reference
Generic formula 
=INDIRECT(sheet_name&"!A1")
Explanation 

To create a formula with a dynamic sheet name you can use the INDIRECT function.

In the example shown, the formula in C6 is:

=INDIRECT(B6&"!A1")

Note: The point of this approach is it lets you to build a formula where the sheet name is a dynamic variable. So, for example, you could change a sheet name (perhaps with a drop down menu) and pull in information from different worksheet. 

How this formula works

The INDIRECT function tries to evaluate text as a worksheet reference.

In this example, we have Sheet names in column B, so we join the sheet name to the cell reference A1 using concatenation:

=INDIRECT(B6&"!A1")

After concatenation, we have:

=INDIRECT("Sheet1!A1")

INDIRECT recognizes this as a valid reference to cell A1 in Sheet1, and returns the value in A1 (1000).

In cell C7, the formula evaluates like this:

=INDIRECT(B7&"!A1")
=INDIRECT("Sheet2!A1")
=200

And so on, for each formula in column C.

Handling spaces and punctuation in sheet names

If sheet names contain spaces, or punctuation characters, you'll need to adjust the formula to wrap the sheet name in single quotes like this:

=INDIRECT("'"&sheet_name&"'!A1")

where sheet_name is a cell address like B6 in the example shown.

Author 
Dave Bruns

Excel Formula Training

Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.