How to Use INDEX and MATCH Together in Excel (2026 Guide)

INDEX and MATCH are two small functions that, combined, do everything VLOOKUP does — plus the two things VLOOKUP cannot: look to the left, and survive a column being inserted. It works in every Excel version and in Google Sheets. Once you see how the two halves fit, it stops looking clever and starts looking obvious.

What each one does alone

MATCH finds a position. =MATCH("ABC123",A2:A100,0) asks: where in A2:A100 does ABC123 appear? It answers with a number — say, 7 — meaning the 7th row of that range. The 0 at the end means an exact match.

INDEX returns a value at a position. =INDEX(C2:C100,7) asks: what is the 7th value in C2:C100? It answers with the value itself — say, the price.

Put them together and you get a lookup: MATCH finds the row, INDEX fetches the answer from that row.

The basic lookup

Column A is the product code, column C is the price. Find the price of ABC123:

=INDEX(C2:C100,MATCH("ABC123",A2:A100,0))

Read it inside out: MATCH finds where ABC123 sits in A2:A100, then INDEX returns the value at that same position in C2:C100. Unlike VLOOKUP, the lookup column and the answer column are independent — the answer can sit to the left of the lookup column, which VLOOKUP cannot do at all.

Why it beats VLOOKUP

Two-way lookup: match a row AND a column

Your table has products down column A and months across row 1 (B1:D1 are Jan, Feb, Mar). Find the February value for product ABC123:

=INDEX(B2:D100,MATCH("ABC123",A2:A100,0),MATCH("Feb",B1:D1,0))

INDEX takes a row number and a column number here. The first MATCH finds the row, the second MATCH finds the column. VLOOKUP cannot do this at all — and it is the formula that makes summary tables and dashboards work.

The 3 mistakes that break it

FAQ

Is INDEX and MATCH better than VLOOKUP?

It is more flexible: it can look to the left, and inserting a column does not break it, because it uses ranges instead of a counted column number. It also works in Google Sheets and every Excel version, which XLOOKUP does not.

What does the 0 mean in MATCH?

The 0 is the match type: exact match. Use 0 for lookups unless you specifically want an approximate match in sorted data, which is rare.

Why does INDEX MATCH return #N/A?

MATCH could not find the lookup value — usually a hidden difference such as a trailing space or a number stored as text. Check with =A2=B2 in a spare cell: FALSE means the values only look the same.

Describe it — get the formula

Type what you want in plain English and get the INDEX and MATCH, VLOOKUP, or any other formula, explained. Free: 5 formulas a day, no account. Sigline Pro ($39 once) unlocks unlimited.

Try the formula generator — free

Related: VLOOKUP vs XLOOKUP: which one should you use? — the full comparison, including when to keep VLOOKUP.