Explanation
At a high level, we use VLOOKUP to extract employee information in 4 columns with ID as the lookup value:
=VLOOKUP($I$4,Table1,MATCH(H5,Table1[#Headers],0),0)
- The ID value comes from cell I4, and is locked so that it won't change as the formula is copied down the column.
- The table array is Table1, with data in the range B5:F104.
- The column index is provided by the MATCH function.
- The match type is zero, so force VLOOKUP to perform an exact match.
The MATCH function is used to get a column index for VLOOKUP like this:
MATCH(H5,Table1[#Headers],0)
Values in column H correspond to the headers in the table, so these go into MATCH as lookup values:
- The lookup value comes from cell H5
- The array is the headers in Table1, specified as a structured reference.
- The match type is set to zero to force an exact match.
This is what accomplishes the two-way match. MATCH then returns the position of the match. For the formula in I5, the position is 2, since "First" is the second column in the table. VLOOKUP then returns the first name for id 601, which is Adrian.
Note: VLOOKUP depends on the lookup value being to the left of the value being retrieved in a table. Generally, this means the lookup value will be the first value in the table. If you have data where the lookup value is not the first column, you can switch to INDEX and MATCH for more flexibility.