How to Keep Excel INDIRECT References Correct When Columns Move
Question details
The user needs a method to maintain accurate data retrieval using the Excel INDIRECT formula, ensuring the formula updates correctly even when columns are inserted, deleted, or rearranged.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Working with dynamic datasets where column structures frequently change, requiring formulas to adapt automatically.
- Observed behavior
- An INDIRECT formula that uses a hardcoded fixed column letter returns incorrect data after the original columns are rearranged or shifted.
Ensure your dataset contains unique column headers in a consistent row, as this dynamic method relies on exact header names to locate the correct target column.
Combine MATCH and ADDRESS Functions with INDIRECT
Use the MATCH function to find the target column by its header dynamically, then use ADDRESS to generate the proper cell reference for the INDIRECT function.
By default, the INDIRECT function evaluates text strings as static cell references. If you hardcode a column letter (like "H"), Excel will not update that letter if you insert a new column. To fix this, you can look up the column header dynamically.
Determine the exact text of the column header you want to reference (e.g., "H") and the row number where this header is located (e.g., Row 1).
Use the MATCH function to find the column index. For example, type MATCH("H", 'Sheet'!1:1, 0) to locate the exact position of the header "H" in the first row of 'Sheet'.
Wrap the MATCH function inside an ADDRESS function to generate the cell reference. If you want to pull data from row 97, write ADDRESS(97, MATCH("H", 'Sheet'!1:1, 0)).
Enclose the entire string within the INDIRECT function, ensuring you include the sheet name. The final formula should look like: =INDIRECT("'Sheet'!"&ADDRESS(97,MATCH("H",'Sheet'!1:1,0))).

Handle Dynamic Spreadsheets Effortlessly with WPS Spreadsheet
WPS Office provides a highly compatible spreadsheet application that seamlessly handles advanced dynamic array formulas, including INDIRECT, MATCH, and ADDRESS, ensuring your data never breaks when updating table layouts.
- 1. Open your workbook in WPS Spreadsheet: Launch WPS Office and open the file where your columns frequently change.
- 2. Select the target cell: Click on the specific cell where you want your dynamic data to appear.
- 3. Input the dynamic formula: Enter the formula combining INDIRECT, ADDRESS, and MATCH, then press Enter. Your data will now automatically adapt if you insert or move columns.

Frequently Asked Questions
Why does my INDIRECT formula break when columns move?
The INDIRECT function evaluates raw text strings to form references. Because text strings like "H1" are static and not interpreted as actual cell links by Excel until the formula runs, Excel will not automatically adjust the text string when columns are inserted or deleted.
Can I use INDEX and MATCH instead of INDIRECT for moving columns?
Yes. Using the INDEX and MATCH combination is highly recommended. Unlike INDIRECT, INDEX uses standard cell referencing, which Excel automatically updates when columns are rearranged, entirely avoiding the need to parse text strings.
Will using INDIRECT slow down my workbook?
INDIRECT is considered a 'volatile' function, meaning it recalculates every time any change happens anywhere in the workbook. Using it extensively across thousands of rows can significantly slow down your spreadsheet's performance.




