VLOOKUP Function

Excel Functions › Lookup & Reference

All Excel versions Lookup & Reference

The Excel VLOOKUP function looks for a value in the first column of a table and returns a value from another column in the same row. It is the most famous function in Excel — and the most error-prone. This guide covers how to use it correctly, the traps that bite almost everyone, and when to use XLOOKUP instead.


Quick answer: to find E2 in column A and return the matching value from column C (the 3rd column of the table):
=VLOOKUP(E2, A2:C10, 3, FALSE)
Always end with FALSE unless you specifically need approximate match — without it, VLOOKUP can silently return the wrong row.

Syntax

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
ArgumentDescription
lookup_valueRequiredThe value to find in the first column of the table.
table_arrayRequiredThe table to search. The lookup column must be the leftmost column of this range.
col_index_numRequiredThe column number within the table to return (1 = the lookup column itself, 2 = next column right, and so on).
range_lookupOptionalFALSE = exact match. TRUE = approximate match (the default!) — requires the first column sorted ascending.

The #1 VLOOKUP trap: if you omit the last argument, VLOOKUP defaults to approximate match. On unsorted data this returns wrong answers with no error at all. Make typing FALSE a reflex.

Exact-match lookup (the everyday use)

The table below lists products with categories and prices. To find the price of the Webcam Pro, search for it in column A and return column 3 of the table:

ABCEF
1ProductCategoryPriceLookupResult
2Laptop StandAccessories$49Webcam Pro$129
3USB-C HubAccessories$65
4Monitor 27inDisplays$289
5Webcam ProVideo$129
6Desk Mat XLAccessories$35
7Monitor 32inDisplays$399
8Ring LightVideo$59

The formula in F2 is:

=VLOOKUP(E2, A2:C8, 3, FALSE) // returns $129

col_index_num is 3 because Price is the third column of the table, counting from the lookup column. Change it to 2 and the formula returns the category instead.

To show a friendly message instead of #N/A when a product is missing, wrap the formula in IFERROR:

=IFERROR(VLOOKUP(E2, A2:C8, 3, FALSE), "Discontinued")

Try it: interactive VLOOKUP demo

Live demo

Build a VLOOKUP against the product table above — and see for yourself what happens when you forget FALSE.

Result:

Approximate match done right

Approximate match is genuinely useful for grading scales, tax brackets, and commission tiers — cases where you want "the bracket this number falls into." The table must be sorted ascending by the first column:

ABDE
1Score at leastGradeScoreGrade
20F84B
360D
470C
580B
690A
=VLOOKUP(D2, A2:B6, 2, TRUE) // 84 falls in the 80 bracket -> B

VLOOKUP finds the largest first-column value that is less than or equal to the lookup value, and returns from that row.

Wildcard lookups

With exact match (FALSE), the lookup value may contain wildcards: * for any characters and ? for exactly one:

=VLOOKUP("Monitor 27*", A2:C8, 3, FALSE) // matches "Monitor 27in" -> $289

Should you still use VLOOKUP?

If everyone opening your file has Excel 2021 or Microsoft 365, XLOOKUP is better in almost every way. VLOOKUP still matters because billions of older spreadsheets use it, and older Excel versions don't have XLOOKUP.

VLOOKUP limitationThe problemModern fix
Can't look leftThe lookup column must be the table's first columnXLOOKUP, or INDEX+MATCH
Column countingcol_index_num breaks when columns are inserted or deletedXLOOKUP points at columns directly
Approximate by defaultForgetting FALSE gives silent wrong answersXLOOKUP defaults to exact match
First match onlyCan't return all matching rowsFILTER returns every match

Migrating is mechanical — this VLOOKUP:

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

becomes this XLOOKUP:

=XLOOKUP(E2, A2:A8, C2:C8)

Errors & common pitfalls

#N/A — value not found. Either the value truly isn't in the first column, or it differs invisibly: stray spaces, numbers stored as text on one side, or characters pasted from the web. Clean with TRIM or convert text-numbers, or wrap in IFERROR for legitimate misses.

#REF! — col_index_num too large. Asking for column 4 of a 3-column table. Count only the columns inside table_array.

#VALUE! — col_index_num less than 1. Usually a broken cell reference feeding the column number.

Pitfall: inserted columns shift your answers. col_index_num is a hard-coded count. Insert a column inside the table and every VLOOKUP now returns the wrong column — with no error shown.

Pitfall: lock the table before copying. Copying down without absolute references shifts the table: use $A$2:$C$8, or better, an Excel Table (Ctrl+T) with structured references.

Pitfall: VLOOKUP returns only the first match. Duplicate keys? You'll only ever see the topmost row. Use FILTER to get all of them.

Practice workbook

📊
Download the free VLOOKUP practice workbook
Every example on this page, ready to open in Excel — plus practice challenges with answers on a separate tab. No sign-up required.

Frequently asked questions

How do I make VLOOKUP an exact match?
Set the fourth argument to FALSE (or 0): =VLOOKUP(value, table, col, FALSE). Without it, VLOOKUP uses approximate match and can return wrong rows on unsorted data.
Can VLOOKUP look to the left?
No. VLOOKUP only searches the first column of the table and returns columns to its right. To look left, use XLOOKUP or INDEX+MATCH.
Is VLOOKUP case-sensitive?
No. "apple" and "APPLE" are the same to VLOOKUP. For case-sensitive lookups you need an array formula with EXACT, or INDEX/MATCH with EXACT.
Why does VLOOKUP return #N/A when the value is clearly there?
Almost always an invisible difference: trailing spaces, a number stored as text on one side and a real number on the other, or non-breaking spaces from pasted data. Test with =A2=E2 — if FALSE, clean the data with TRIM or convert text numbers.
Can VLOOKUP return multiple matches?
No — it always returns the first match from the top. To return every matching row, use the FILTER function (Excel 2021+/365).
What's the difference between VLOOKUP and XLOOKUP?
XLOOKUP defaults to exact match, looks in any direction, has built-in "not found" handling, survives column insertions, and can return multiple columns. VLOOKUP's only advantage is compatibility with Excel 2019 and older. See our XLOOKUP guide.

Master functions like this in one day

This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related functions: XLOOKUP · INDEX · MATCH · HLOOKUP · LOOKUP