May 19, 2026

Excel lookup formulas are essential for anyone who works with structured data, reports, reconciliations, pricing tables, customer lists, or financial models. While VLOOKUP is often the first lookup function people learn, experienced Excel users frequently prefer the combination of INDEX and MATCH. This method is more flexible, more reliable when columns change, and better suited to serious spreadsheet work.

TLDR: INDEX MATCH is a powerful Excel lookup method that can replace VLOOKUP in many situations. It lets you search for a value in one column and return a result from another column, even if the return column is to the left of the lookup column. Unlike VLOOKUP, it does not depend on fixed column numbers, which makes formulas more durable when your worksheet structure changes. If you build reports or manage important data, learning INDEX MATCH is a worthwhile investment.

What INDEX MATCH Does

INDEX MATCH is not a single Excel function. It is a combination of two functions that work together:

  • INDEX returns a value from a specific position within a range.
  • MATCH finds the position of a value within a range.

When combined, MATCH identifies where a lookup value is located, and INDEX returns the corresponding value from another range. This arrangement gives you more control than VLOOKUP, especially in workbooks where columns may be inserted, deleted, or rearranged.

The basic structure is:

=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))

The final 0 in the MATCH function tells Excel to find an exact match. In most business lookup situations, exact match is what you want because it avoids incorrect or approximate results.

A Simple INDEX MATCH Example

Assume you have a table with employee IDs in column A and employee names in column B. You want to enter an employee ID and return the matching name.

  • Employee ID range: A2:A100
  • Employee Name range: B2:B100
  • Lookup value: E2

The formula would be:

=INDEX(B2:B100, MATCH(E2, A2:A100, 0))

Here is what happens:

  1. MATCH(E2, A2:A100, 0) searches for the value in E2 within the employee ID range.
  2. It returns the position of that employee ID in the range.
  3. INDEX(B2:B100, …) uses that position to return the corresponding employee name.

For example, if employee ID 1045 is the 12th item in A2:A100, MATCH returns 12. INDEX then returns the 12th item from B2:B100.

Why INDEX MATCH Is Better Than VLOOKUP

VLOOKUP remains useful, but it has limitations that become serious in larger or more complex spreadsheets. INDEX MATCH is generally better because it separates the lookup column from the return column, making the formula more adaptable.

1. INDEX MATCH Can Look Left

One of the best-known weaknesses of VLOOKUP is that it can only return values from columns to the right of the lookup column. If your lookup value is in column D and the result you need is in column B, standard VLOOKUP cannot do that without rearranging your data or using a workaround.

INDEX MATCH does not have this limitation. For example:

=INDEX(B2:B100, MATCH(E2, D2:D100, 0))

This formula searches for the value in E2 within D2:D100 and returns the corresponding value from B2:B100. The return range is to the left of the lookup range, and the formula works without changing your worksheet layout.

2. INDEX MATCH Is Safer When Columns Change

VLOOKUP formulas usually rely on a column index number. For example:

=VLOOKUP(E2, A2:D100, 4, FALSE)

In this formula, the number 4 tells Excel to return a value from the fourth column of the selected table range. The problem is that if someone inserts or deletes a column, the formula may return the wrong result or break entirely.

INDEX MATCH avoids this issue because it references the actual return range directly:

=INDEX(D2:D100, MATCH(E2, A2:A100, 0))

Instead of saying “return the fourth column,” the formula says “return a value from D2:D100.” This makes the logic clearer and less vulnerable to structural changes.

3. INDEX MATCH Is Easier to Audit in Complex Models

In professional spreadsheets, clarity matters. If your formula uses VLOOKUP with a large table range and a column number such as 17, it may not be immediately obvious what data is being returned. With INDEX MATCH, the lookup range and return range are visible in the formula.

Compare these two formulas:

=VLOOKUP(H2, A2:Q5000, 14, FALSE)

=INDEX(N2:N5000, MATCH(H2, A2:A5000, 0))

The second formula is more transparent. You can see that Excel is searching in column A and returning a value from column N. This improves auditability, particularly in financial reporting, operations analysis, and compliance-related workbooks.

Understanding the INDEX Function

The INDEX function returns a value from a range based on its position. The simplest version is:

=INDEX(array, row_num)

For example:

=INDEX(B2:B10, 3)

This returns the third value in the range B2:B10. If B4 contains “London,” the formula returns “London.”

INDEX can also work with two-dimensional ranges using both row and column numbers:

=INDEX(A2:D10, 4, 3)

This returns the value from the fourth row and third column of the range A2:D10.

Understanding the MATCH Function

The MATCH function returns the position of a value within a range. Its structure is:

=MATCH(lookup_value, lookup_array, match_type)

The most common version uses 0 as the match type:

=MATCH(E2, A2:A100, 0)

This searches for the value in E2 inside A2:A100 and returns its position. If the value is found in the fifth cell of the range, MATCH returns 5.

The match type options are:

  • 0: Exact match. This is the safest choice for IDs, names, codes, and most business data.
  • 1: Approximate match, assuming the lookup range is sorted in ascending order.
  • -1: Approximate match, assuming the lookup range is sorted in descending order.

For most users, use 0 unless you have a specific reason not to.

Building an INDEX MATCH Formula Step by Step

A reliable way to learn INDEX MATCH is to build the formula in stages.

  1. Identify the value you want to look up.

    This might be a product code, customer number, employee ID, or invoice number.
  2. Identify the lookup range.

    This is the column or row where Excel should search for the lookup value.
  3. Identify the return range.

    This is the column or row containing the value you want Excel to return.
  4. Write the MATCH function first.

    Confirm that it returns the correct position.
  5. Place MATCH inside INDEX.

    INDEX will use the position from MATCH to return the final result.

For example, suppose you have product codes in A2:A500 and prices in C2:C500. The product code to find is in F2. The formula is:

=INDEX(C2:C500, MATCH(F2, A2:A500, 0))

This formula finds the product code in column A and returns the matching price from column C.

Handling Errors with IFERROR

If INDEX MATCH cannot find a match, Excel returns an #N/A error. In many reports, this can look untidy or confuse users. You can handle this with IFERROR:

=IFERROR(INDEX(C2:C500, MATCH(F2, A2:A500, 0)), "Not found")

This formula returns “Not found” instead of displaying an error. This is especially useful in dashboards, templates, and shared workbooks.

However, use IFERROR carefully. Errors can reveal important problems, such as missing codes or inconsistent data entry. In quality-critical spreadsheets, it may be better to show a clear message such as “Check code” rather than hiding the issue completely.

INDEX MATCH with Multiple Criteria

In some situations, one lookup value is not enough. For example, you may need to return a sales figure based on both a region and a product. INDEX MATCH can handle this by combining conditions.

Assume:

  • Regions: A2:A100
  • Products: B2:B100
  • Sales: C2:C100
  • Selected region: F2
  • Selected product: G2

A modern Excel formula could be:

=INDEX(C2:C100, MATCH(1, (A2:A100=F2)*(B2:B100=G2), 0))

This formula checks both criteria and returns the sales value where both conditions are true. In older versions of Excel, this may need to be entered as an array formula using Ctrl + Shift + Enter. In Microsoft 365 and newer Excel versions, dynamic arrays generally handle it automatically.

Common Mistakes to Avoid

Although INDEX MATCH is dependable, mistakes can still occur. The most common issues include:

  • Mismatched range sizes: The lookup range and return range should usually have the same number of rows.
  • Using approximate match unintentionally: Always use 0 for exact match unless you deliberately need approximate matching.
  • Extra spaces in data: “ABC123” and “ABC123 ” are not the same to Excel.
  • Numbers stored as text: A numeric ID stored as text may not match the same ID stored as a number.
  • Duplicate lookup values: INDEX MATCH returns the first match it finds, which may not be the result you expect.

For important workbooks, validate the source data before relying on lookup formulas. Clean data produces better formulas, fewer errors, and more trustworthy outputs.

INDEX MATCH vs XLOOKUP

Modern Excel includes XLOOKUP, which is designed to replace both VLOOKUP and many INDEX MATCH formulas. XLOOKUP is easier to read and can look left by default. For example:

=XLOOKUP(F2, A2:A500, C2:C500, "Not found")

This is simple and effective. However, INDEX MATCH remains valuable because it works in older Excel versions and is widely used in existing business files. Many organizations still maintain spreadsheets built before XLOOKUP was available, so understanding INDEX MATCH is still a practical professional skill.

When You Should Use INDEX MATCH

You should consider using INDEX MATCH when:

  • Your return column may be to the left of the lookup column.
  • Your worksheet structure may change over time.
  • You want formulas that are easier to audit than VLOOKUP with column numbers.
  • You are working in an Excel version that does not support XLOOKUP.
  • You need a lookup formula that can scale into more advanced scenarios.

VLOOKUP is still acceptable for quick, simple tasks. But if accuracy, flexibility, and maintainability matter, INDEX MATCH is usually the stronger choice.

Final Thoughts

Learning INDEX MATCH may take slightly more effort than learning VLOOKUP, but the payoff is significant. It gives you better control over your lookup logic, reduces the risk of broken formulas, and supports more professional spreadsheet design.

For serious Excel users, INDEX MATCH is not just an alternative to VLOOKUP; it is often a better standard. Once you understand how INDEX and MATCH work together, you can build formulas that are clearer, safer, and more adaptable to real-world data challenges.