
Retrieve data from a table by searching for a key in the first column. VLOOKUP is useful for classic vertical lookup tables such as IDs, prices, and tax brackets.
The Excel VLOOKUP function searches for a value in the first column of a table and returns a value from another column in the same row. It is one of the classic lookup functions in Excel and is still widely used in existing workbooks.
VLOOKUP works well when your table is vertical: the lookup key is in the leftmost column, and the values you want to return are in columns to the right. Typical examples include employee IDs, product codes, and sorted threshold tables.
Its main limitation is structural: VLOOKUP can only look to the right. If the return column is to the left of the lookup column, another approach such as XLOOKUP or INDEX with MATCH is usually better.
Finds a key in the leftmost column of a table and returns a value from a selected column in the same row.
Returns text, numbers, dates, or other values from the selected return column.
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
lookup_value is what you want to find in the first column, table_array is the full lookup table, col_index_num is the return column number inside that table, and range_lookup controls whether the match is exact or approximate.
The column index is counted relative to the selected table, not the worksheet. If the table is A2:C5, then column 1 means A2:A5, column 2 means B2:B5, and column 3 means C2:C5.
FALSE for exact match or TRUE for approximate match.Exact match is the safer default for IDs, names, and codes. Approximate match should be used only when the first column is sorted in ascending order and the table represents ranges or thresholds.
VLOOKUP is often compared with other lookup functions because the right choice depends on table layout and flexibility requirements.
| Function | Main Direction | Use When |
|---|---|---|
VLOOKUP |
Down the first column | Your lookup keys are in the leftmost column and the return data is to the right |
HLOOKUP |
Across the top row | Your lookup keys are arranged horizontally |
XLOOKUP |
Flexible | You want a newer function that can look in any direction |
INDEX + MATCH |
Flexible with separate position logic | You need more control or want to avoid VLOOKUP's leftmost-column restriction |
Use VLOOKUP when the table already matches its required layout. If the table structure is different, it is usually better to choose a function that fits the layout rather than force the layout to fit VLOOKUP.
VLOOKUP is most commonly used for exact-match joins. For example, an employee ID can return a name, a product code can return a price, or a status code can return a label. In these cases, FALSE is usually the correct match mode.
It can also be used in sorted threshold tables with approximate match. In that pattern, VLOOKUP returns the row for the largest value less than or equal to the lookup value. That is why it often appears in tax bracket or discount tier examples.
One common weakness is the hard-coded column index. If the table changes, a fixed index such as 3 may start returning the wrong column. Using MATCH or COLUMNS() can make that part of the formula easier to maintain.
FALSE for exact matching unless you are working with sorted threshold data.This formula searches for ID 102 in the first column and returns the value from column 2 of the same row. It is the standard VLOOKUP pattern for ID-based retrieval.
=VLOOKUP(102, A2:C5, 2, FALSE)
Find the name for ID 102 in the range A2:C5. Formula: =VLOOKUP(102, A2:C5, 2, FALSE).
In exact-match mode, wildcards such as * can be used in text lookups. This is useful when you only know part of a name or code and want the first matching row.
=VLOOKUP("John*", A3:C4, 3, FALSE)
Find the salary for "Bob" in the range B2:C5. Formula: =VLOOKUP("Bob", B2:C5, 2, FALSE).
This formula uses approximate match on a sorted income table. For an income of 85,000, the lookup lands on the 80,000 row and returns its associated rate.
=VLOOKUP(85000, H2:I6, 2, TRUE)
Find the tax rate for 85,000 in the sorted range H2:I6. Formula: =VLOOKUP(85000, H2:I6, 2, TRUE).
Using COLUMNS(A3:B3) returns 2, so the formula retrieves the second column of the selected table. This pattern can make a VLOOKUP easier to maintain than a fixed number if the formula is copied or expanded.
=VLOOKUP(102, A3:C3, COLUMNS(A3:B3), FALSE)
Use a wildcard to find the price for an item starting with "X-". Formula: =VLOOKUP("X*", A1:C10, 3, FALSE).
VLOOKUP searches the first column of a table and returns a value from a later column in the same row.=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]).Tell your friends about this post