How to create dynamic reference table name in Excel
To build a formula with a dynamic reference to an Excel Table name, you can use the INDIRECT function with concatenation as needed.
Formula
=SUM(INDIRECT(table&"[column]"))
Note: INDIRECT is a volatile function and can cause performance issues in larger, more complex workbooks.
Explanation
In the example shown, the formula in L5 is:
=SUM(INDIRECT(K5&"[Amount]"))
Which returns the SUM of Amounts for three tables named “West”, “Central”, and “East”.
How this formula works
This formula behaves like these simpler formulas:
=SUM(West[Amount]) =SUM(Central[Amount]) =SUM(East[Amount])
However, instead of hardcoding the table into each SUM formula, the table names are listed in column K, and the formulas in column L use concatenation to assemble a reference to each table. This allows the same formula to be used in L5:L7.
The trick is the INDIRECT function to evaluate the reference.
We start with:
=SUM(INDIRECT(K5&"[Amount]"))
which becomes:
=SUM(INDIRECT("West"&"[Amount]"))
and then:
=SUM(INDIRECT("West[Amount]"))
The INDIRECT function then resolves the text string into a proper structured reference:
=SUM(West[Amount])
And the SUM function returns the final result, 27,500 for the West region.