Skip to main content
SheetHub Docs
Google Sheets3 min read

Google Sheets INDIRECT: Build Dynamic Sheet References

Reference dynamic tab names, ranges, and multi-sheet summaries in Google Sheets using the powerful INDIRECT function.

SheetHub3 min
Hardcoding tab names in formulas makes multi-month workbooks and regional reports rigid and difficult to scale. If your workbook has twelve monthly tabs (Jan, Feb, Mar, etc.), writing separate formulas for every single sheet leads to repetitive formula editing. Google Sheets INDIRECT solves this challenge, converting text strings into live cell and range references dynamically. This tutorial explains how to use =INDIRECT() in Google Sheets, build dropdown-driven summary dashboards, handle sheet names with spaces, and avoid calculation slowdowns.

What is Google Sheets INDIRECT and how does it work?

The INDIRECT function takes a string of text and evaluates it as an actual cell or range address.

Syntax

=INDIRECT(cell_reference_as_string, [is_a1_notation])
  • cell_reference_as_string: A text string representing a valid cell or range (e.g., "A1", "Summary!B5", or "'" & A1 & "'!B2:B10").
  • is_a1_notation (optional): TRUE for standard A1 notation (default), FALSE for R1C1 notation.
If your dynamic workbook requires automated import from external spreadsheets, compare this with our guide to Google Sheets IMPORT functions.

Pattern 1: Dynamic tab selection using a dropdown

Imagine a workbook containing separate tabs for four regions: North, South, East, and West. Each tab stores total revenue in cell B10. In your summary dashboard:
  1. Put a dropdown list in cell G2 containing the region names (North, South, etc.).
  2. In cell H2, enter the following formula to fetch revenue dynamically:
=INDIRECT("'" & G2 & "'!B10")

Why single quotes are essential:

Wrapping the sheet name in single quotes (') ensures the formula works even if tab names contain spaces or special characters (such as 'Q1 Sales'!B10).

Pattern 2: Dynamic ranges inside aggregation formulas

You can nest INDIRECT inside any standard calculation function like SUM, AVERAGE, or VLOOKUP. To calculate the sum of Column C from the selected tab:
=SUM(INDIRECT("'" & G2 & "'!C2:C100"))
When someone switches the dropdown from North to West, SUM immediately recalculates against the West tab's data range. For dashboards that combine multi-sheet metrics with structured SQL-like aggregations, pair this with our Google Sheets QUERY function complete guide.

Pattern 3: Dynamic lookup across variable sheets

To look up an employee's salary in column B based on their ID in column A from whichever department tab is selected in G2:
=VLOOKUP(F2, INDIRECT("'" & G2 & "'!A2:D50"), 2, FALSE)
To structure clean, self-documenting multi-step formulas without nested string repetitions, consider organizing your calculations using Google Sheets LET formulas.

Troubleshooting and best practices

Error / PitfallCauseSolution
#REF! (Cannot find range)The tab name in the text string does not match any existing sheet.Ensure exact spelling and wrap tab references in single quotes (').
Workbook lagINDIRECT is a volatile function that recalculates on every edit.Use bounded ranges (e.g., A1:B100 instead of A:B) to preserve sheet performance.
Incompatible formula movesCopy-pasting text strings does not automatically shift relative addresses.Use ADDRESS or ROW if dynamic row shifting is required.

Summary

The INDIRECT function is the foundation of flexible Google Sheets dashboards. By turning text strings into active references, you can build consolidated reports that adapt instantly to user selections.

Recommended Next Reading

All Articles

Share this tutorial

Discussion & Community

Share questions, tips, or edge-cases about this spreadsheet formula.

Recommended Next Reading

All Articles