This example shows how to use INDEX and MATCH to get information from a table based on an exact match. In the example shown, the formula in cell H6 is:


which returns 1995, the year the movie Toy Story was released.

Generic formula



This formula uses the MATCH function to get the row position of Toy Story in the table, and the INDEX function to retrieve the value at that row in column 2. MATCH is configured to look for the value in H4 in column B:


Note that the last argument is FALSE, which forces MATCH to perform an exact match.

MATCH finds "Toy Story" on row 4 and returns this number to INDEX as the row number. INDEX is configured with an array that includes all the data in the table, and the column number is hard-coded as 2. Once MATCH returns 4 we have:


INDEX then retrieves the value at the intersection of the 4th row and 2nd column in the array, which is "1995".

The other formulas in the example are the same except for the column number:

=INDEX(B5:E9,MATCH(H4,B5:B9,FALSE),2) // year
=INDEX(B5:E9,MATCH(H4,B5:B9,FALSE),3) // rank
=INDEX(B5:E9,MATCH(H4,B5:B9,FALSE),4) // sales

INDEX with a single column

In the example above, INDEX receives an array that contains all data in the table. However, you can easily rewrite the formulas to work with one column only, which eliminates the need to supply a column number:

=INDEX(C5:C9,MATCH(H4,B5:B9,FALSE)) // year
=INDEX(D5:D9,MATCH(H4,B5:B9,FALSE)) // rank
=INDEX(E5:E9,MATCH(H4,B5:B9,FALSE)) // sales

In each case, INDEX receives an single-column array that corresponds to the data being retrieved, and MATCH supplies the row number.

How to use INDEX and MATCH - detailed introduction with more examples
Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.