Excel allows us to join tables with INDEX and MATCH functions. The MATCH function returns a row value in a table, while the INDEX returns a value for that row. This step by step tutorial will assist all levels of Excel users in joining tables using INDEX and MATCH functions.
Figure 1. The final result of joining tables with INDEX and MATCH functions
Syntax of the INDEX formula
=INDEX(array, row_num, column_num)
The parameters of the INDEX function are:
- array – a range of cells where we want to get a data
- row_num – a number of a row in the array for which we want to get a value
- column_num – a column in the array which returns a value.
Syntax of the MATCH formula
=MATCH(lookup_value, lookup_array, [match_type])
The parameters of the MATCH function are:
- lookup_value – a value which we want to find in the lookup_array
- lookup_array – the array where we want to find a value
- [match_type] – a type of match. We put 0 which is an exact match.
Setting up Our Data for Joining the Tables with INDEX and MATCH
Our table consists of 5 columns: “Delivery Number” (column B), “Customer ID (column C), “Delivery Date” (column D), “Amount” (column D) and “Person” (column F).
In column F, we want to populate a Person from the Lookup table in the range H3:I9. This table consists of 2 columns: “Customer ID” (column H) and “Person” (column I). Two tables are joined by the columns “Customer ID”.
Figure 2. Data that we will use in the joining tables example
Join two tables using INDEX and MATCH
We want to get a person in the cell F3, from the lookup table H3:I9, based on the Customer ID 003 in the cell C3.
The formula looks like:
=INDEX($H$3:$I$9, MATCH(C3, $H$3:$H$9, 0), 2)
The array is the range H3:I9. The row_num is the result of the MATCH(C3, $H$3:$H$9, 0)
, which returns the row of 003 Customer ID in the lookup range.
To apply the SUMIFS function, we need to follow these steps:
- Select cell F3 and click on it
- Insert the formula:
=INDEX($H$3:$I$9, MATCH(C3, $H$3:$H$9, 0), 2)
- Press enter
- Drag the formula down to the other cells in the column by clicking and dragging the little “+” icon at the bottom-right of the cell.
Figure 3. Using the INDEX and MATCH functions to join two tables
The MATCH function will return 3, as Customer ID 003 is in the third row of the lookup range. This is the row_num parameter of the INDEX function. The final result in the cell F3 is Lily as this is the value of the Person column in the third row.
Most of the time, the problem you will need to solve will be more complex than a simple application of a formula or function. If you want to save hours of research and frustration, try our live Excelchat service! Our Excel Experts are available 24/7 to answer any Excel question you may have. We guarantee a connection within 30 seconds and a customized solution within 20 minutes.
Leave a Comment
Hi, what if you have three or four transactions for customer ID. How can you you populate this to columns so that every transaction should be on separate column?
Comment awaiting moderation