How to Fix INDEX and MATCH Range Expansion Errors in Excel
Question details
Users need to fix INDEX and MATCH formulas that break, display as text, or lose curly braces after expanding the data range to cover thousands of rows.

- Product
- Microsoft Excel
- Device & OS
- not provided
- Scenario
- Expanding data range references in complex INDEX and MATCH formulas to accommodate larger datasets.
- Observed behavior
- The formula breaks, turns into plain text, or loses the curly braces that indicate an array formula when row ranges are manually adjusted.
Verify that the row dimensions in both your INDEX array and your MATCH lookup array are exactly the same size to prevent calculation misalignments.
Consistently Expand Ranges and Update Array Syntax
Ensure both the INDEX range and MATCH range are expanded symmetrically. In modern versions of Excel, legacy curly braces are no longer required due to dynamic arrays.
In Microsoft 365, Office 2024, and Office 2021, the calculation engine uses dynamic arrays by default. This means you do not need to manually add curly braces using Ctrl+Shift+Enter when dealing with arrays. If your formula stopped working when braces were removed, it is often due to mismatched range sizes during the expansion.
Click on the cell containing your broken INDEX and MATCH formula to view it in the formula bar.
Locate the first range in the INDEX function (e.g., GageSL!$A$2:$I$50) and change the end row to match your new dataset size (e.g., GageSL!$A$2:$I$5000).
Locate the range inside the MATCH function (e.g., GageSL!$A$2:$A$50) and update the end row to match the exact same number (e.g., GageSL!$A$2:$A$5000).
Press Enter to apply. If you are using an older version of Excel (2019 or earlier), you must press Ctrl+Shift+Enter to restore the curly braces {} and evaluate it as an array formula.

Replace INDEX and MATCH with XLOOKUP
Use the modern XLOOKUP function to bypass legacy array syntax issues entirely while managing large dataset expansions more efficiently.
Use WPS Spreadsheet to Handle Complex Formulas Seamlessly
WPS Office provides robust support for advanced functions like INDEX, MATCH, and XLOOKUP. Manage massive datasets without worrying about legacy array formula curly braces, all within a highly compatible and free spreadsheet environment.
- 1. Open your file in WPS Spreadsheet: Launch WPS Office and open your .xlsx workbook containing the problematic formulas.
- 2. Edit the lookup formula: Double-click the cell containing the INDEX and MATCH formula to enter edit mode.
- 3. Adjust the data ranges: Modify the row numbers in both the lookup array and the return array to encompass your new data size.
- 4. Apply with ease: Simply press Enter. WPS Spreadsheet's modern calculation engine natively processes dynamic arrays without requiring manual curly braces.

Frequently Asked Questions
Why does my INDEX and MATCH formula show as text instead of calculating?
This happens when the cell formatting is accidentally set to 'Text'. To fix it, highlight the cell, change the number format from 'Text' to 'General' in the Home tab, click into the formula bar, and press Enter to force Excel to calculate the formula.
Do I still need to use Ctrl+Shift+Enter for INDEX and MATCH?
It depends on your software version. In older versions like Excel 2019 or earlier, you must use Ctrl+Shift+Enter to evaluate array formulas, which adds the {} curly braces. In Microsoft 365, Office 2021, and modern WPS Office, dynamic arrays are native, so just pressing Enter is sufficient.
How do I fix a #N/A error after expanding my INDEX MATCH range?
A #N/A error usually means the lookup value does not exist in the expanded range, or the data types do not match (e.g., numbers stored as text). Double-check that your lookup value is present in the new rows and that both the INDEX and MATCH ranges cover the exact same row numbers.
What is the best alternative to INDEX and MATCH for large datasets?
The XLOOKUP function is the best alternative. It is easier to write, less prone to errors when expanding ranges, handles dynamic arrays effortlessly, and includes a built-in argument for handling 'if not found' errors without needing an additional IFERROR function.




