Excel VLOOKUP Function

VLOOKUP searches vertically down the first column of a table and returns a value from another column in the matching row.

Use it when one value identifies a record and you need related information from that record—for example, looking up a product price from a SKU, an employee's department from an ID, or a discount rate from a customer tier.

1
Choose a value Such as a product code
2
Search the first column Excel finds the matching row
3
Return a related value From a column to the right

VLOOKUP syntax & arguments

Syntax

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Required Optional
  1. 1

    lookup_value

    Required

    The value to find in the first column of the lookup table. It can be text, a number, a cell reference, or the result of another formula.

  2. 2

    table_array

    Required

    The range containing the lookup data. The values being searched must be in the range's first column, and the return column must be inside the same range.

  3. 3

    col_index_num

    Required

    The number of the column to return, counted from the left edge of table_array. The first column is 1, the second is 2, and so on.

  4. 4

    range_lookup

    Optional

    Controls match behavior:

    • FALSE — Exact match: Returns a result only when VLOOKUP finds the lookup value exactly.
    • TRUE — Approximate match: Returns an exact match or the next smallest value. This is the default when the argument is omitted and requires the lookup column to be sorted in ascending order.

Example

=VLOOKUP(A2, E2:G10, 3, FALSE)

Find the value from A2 in column E, then return the value from the third column of E:G on the matching row.

VLOOKUP caveats

VLOOKUP is common in existing workbooks, but its rules can produce incorrect results when they are not made explicit.

  • It only looks to the right

    The lookup value must be in the first column of table_array. VLOOKUP cannot return a value from a column to its left.

  • Exact match is not the default

    Omitting range_lookup uses approximate matching. Include FALSE when you need an exact match.

  • Approximate data must be sorted

    When using TRUE, sort the lookup column in ascending order. Unsorted data can return a believable but incorrect result.

  • The return column is positional

    col_index_num is a hard-coded position. Changes to the lookup table's columns can change the result or cause a #REF! error.

Working in modern Excel? XLOOKUP is usually more flexible because it supports left lookups, uses exact matching by default, and does not require a numeric column index. VLOOKUP is still worth learning because it remains common in existing files.

Intro VLOOKUP practice problem

Solve the intro problem directly here, or open it on its own page.

Open full problem

Advanced VLOOKUP practice problems

Use VLOOKUP alongside other Excel functions in realistic, less-prescriptive challenges.