INDEX MATCH Multiple Columns

“index match multiple columns” comes up constantly, so this page leads with the exact answer, and only then explains the detail. Everything works in Excel on Windows and Mac and maps almost one-to-one to Google Sheets. Copy the answer above and get back to work, or read on to turn a one-off fix into something you never have to look up again.

Exact answer

In Excel: use =INDEX(return_range, MATCH(lookup_value, lookup_range, 0))MATCH finds the row number of the lookup value and INDEX returns the value in that row from any column, left or right.

Syntax

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

Arguments

ArgumentDescription
return_rangerequiredThe column you want a value returned from.
lookup_valuerequiredThe value MATCH searches for.
lookup_rangerequiredThe column MATCH searches through for the lookup value.
match_typeoptional0 for an exact match (embedded as the third argument of MATCH); 1 or -1 for approximate.

Related functions

VLOOKUPXLOOKUPHLOOKUP
Annotated stepsExcel
1

Decide the return_range — the column you want the answer from — and start with =INDEX(that range,.

2

Inside INDEX, open MATCH( and click the cell holding the value to find.

3

Select the column to search through as the second MATCH argument.

4

Type 0 as the third MATCH argument to force an exact match, then close both brackets.

5

Press Enter and fill the formula down; lock ranges with $ if you will copy it.

Ctrl+CthenCtrl+Shift+V+Cthen+Ctrl+VPaste values · WindowsMac

What this does

INDEX/MATCH pairs two functions to do a lookup that VLOOKUP cannot: MATCH returns the position of the lookup value within a column, and INDEX returns the cell at that position in whatever column you choose. Because the search column and the return column are independent, it can look to the left and it survives inserted or moved columns that would break a VLOOKUP col_index_num. Keep the inputs visible and clearly labelled and the whole thing stays auditable — anyone who opens the file later, including you, can see at a glance exactly what feeds the result and change one assumption without hunting through the formula. For “index match multiple columns”, the reliable version is a short checking loop, not just the first command that appears to work. Run it on a deliberately small range first, watch how the affected columns change, and only then apply the same setup to the full sheet. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That is what makes a data step that keeps your analysis trustworthy useful in real work: repeatable, auditable, and not dependent on memory or luck.

A worked example

Names are in column C (C2:C100) and IDs in column A (A2:A100). To return the ID for the name in E2 — a value to the LEFT, which VLOOKUP cannot do: =INDEX(A2:A100, MATCH(E2, C2:C100, 0)). MATCH finds "Maria" in row 7 of the range and INDEX returns the ID in A8, for example 1042. INDEX/MATCH is the durable lookup professionals reach for when data is wide or volatile: it looks in any direction and does not break when columns shift. A practical tip before you scale it up: build it once on a small block of test data, confirm the number against the tool on this page, and only then point it at your real sheet. That one habit catches almost every mistake while it is still cheap to fix, long before a wrong figure reaches a report or a colleague.

In Google Sheets

If you are in Google Sheets rather than Excel, the good news is that the formula shown here is identical and the workflow barely changes — menus sit across the top instead of in a ribbon, and a few function names differ slightly, but anything you build here moves across with little or no rework. Nothing on this page is behind a login: the tool runs entirely in your browser, the formula is shown in full with one-click copy, and the steps work the same on Windows and Mac. That is the whole promise here — the exact answer, a way to prove it on your own numbers, and just enough context to make it stick. If you take one thing from this page on “index match multiple columns”, make it the habit rather than the keystrokes: set the problem up with labelled inputs, reference those cells, and let Excel do the recomputing. Bookmark the page for the syntax, but do the example once in a blank sheet and check it against the tool above — five minutes of hands-on practice fixes the method in memory far better than re-reading, and it surfaces the small snags while they are still harmless. After that the technique is genuinely yours: faster than searching for it again, and reliable enough to drop into work that other people depend on.

Common mistakes

  • Giving INDEX and MATCH ranges of different heights, so the row number from MATCH points at the wrong cell.
  • Forgetting the 0 in MATCH, which switches it to an approximate match and can return a wrong row.
  • Selecting the whole table for INDEX instead of a single return column, which forces a needless extra column-number argument.

Frequently asked questions

Why use INDEX/MATCH instead of VLOOKUP?

INDEX/MATCH can return columns to the left of the lookup column, and it keeps working when you insert or move columns because it references columns directly rather than by a counted index number.

What does the 0 in MATCH mean?

It requests an exact match. Without it, or with 1, MATCH does an approximate match that needs sorted data and can silently return the wrong position, so include 0 for normal lookups.

Is INDEX/MATCH faster than VLOOKUP?

On large sheets it can be, because it only scans the lookup column and the return column rather than the whole table array, though XLOOKUP is simpler still if your Excel version supports it.