Function Problems

How to Use INDIRECT to Reference a Specific Row and Column in an Excel Table

Anum MushtaqAnum Mushtaq Nov 3, 2026 872 views

Question details

The user needs to use the INDIRECT function to dynamically build a reference to a specific column within the current row of an Excel table.

How to Use INDIRECT to Reference a Specific Row and Column in an Excel Table
Product
Excel
Device & OS
not provided
Scenario
Constructing a dynamic structured reference to a table column using INDIRECT, specifically targeting the current row's value.
Observed behavior
Standard structured references for the current row (like [@ColumnName]) return errors when used inside INDIRECT unless the explicit table name is concatenated into the string.
Before you start

Ensure your data is formatted as an official Table (via Insert > Table) and identify the exact name of the table and the target column headers you wish to reference dynamically.

Solution 1Recommended

Include the Table Name in the INDIRECT Structured Reference

To correctly resolve a dynamic reference to the current row of a table column using INDIRECT, you must prepend the table name to the structured reference string.

When using the INDIRECT function with Excel tables, referencing the current row using just `[@ColumnName]` will result in a #REF! error. The INDIRECT function requires the explicit table name to parse the reference correctly. You must build a string formatted as `TableName[@ColumnName]`.

1
Identify the table name

Check your Table Design tab to confirm the exact name of your table, for example, 'MainData'.

2
Determine the dynamic column string

Use a text function to build the column name dynamically. For instance, use `SUBSTITUTE(MainData[[#Headers],[MARKUP YEAR 1]],"MARKUP","PRINCIPAL")` to dynamically change the referenced column.

3
Combine table name and structured reference syntax

Wrap your dynamic column name inside the specific structured reference brackets `[@[` and `]]`. Concatenate this with the table name.

4
Wrap in the INDIRECT function

Combine everything into the final formula: `=INDIRECT("MainData[@["&SUBSTITUTE(MainData[[#Headers],[MARKUP YEAR 1]],"MARKUP","PRINCIPAL")&"]]")`. Press Enter to calculate the dynamic reference.

Include the Table Name in the INDIRECT Structured Reference
Syntax Rules for INDIRECT Strings: Always enclose the literal text components of your structured reference (like the table name and brackets) in double quotes, and use the ampersand (&) operator to join them with nested functions or cell references.
Advanced Formula Management

Master Dynamic Table References with WPS Spreadsheet

WPS Spreadsheet fully supports advanced array formulas, INDIRECT, and structured table references. You can easily build, edit, and audit complex dynamic formulas using its intuitive interface.

  1. 1. Open your dataset in WPS Spreadsheet: Launch WPS Spreadsheet and open the workbook containing your data.
  2. 2. Format data as a Table: Select your data range, go to the Insert tab, and click Table (or use the Ctrl+T shortcut) to create a structured table.
  3. 3. Enter the INDIRECT formula: Click the cell where you want the result, and type your `=INDIRECT("TableName[@[" & ... & "]]")` formula.
  4. 4. Evaluate the result: Press Enter to dynamically pull the data from the targeted row and column. Drag the fill handle to apply the formula down the column.
100% compatibility with Microsoft Excel formulas and structured table references.Fast and lightweight performance, processing large datasets and volatile formulas efficiently.Built-in formula auditing tools to help you trace errors like #REF! easily.Free to use with a familiar, tab-based user interface.
microsoft office alternative - wps office

Frequently Asked Questions

Why does INDIRECT("[@ColumnName]") return a #REF! error?

The INDIRECT function cannot implicitly know which table you are referring to when you only provide the current row notation. It requires the explicit table name to resolve the reference. You must use the format "TableName[@ColumnName]" instead.

Can I use INDIRECT to reference table headers?

Yes, you can dynamically reference table headers by constructing a string that explicitly points to the header row. Build the string like "TableName[[#Headers],[ColumnName]]" inside the INDIRECT function.

Does using INDIRECT with tables slow down my workbook?

INDIRECT is a volatile function, meaning it recalculates every time any change is made to the worksheet. If you use it extensively across thousands of rows in a table, it can cause noticeable performance slowdowns.