Lookup & Reference

VLOOKUP Function in Excel

Looks for a value in the leftmost column of a table, and then returns a value in the same row from a column you specify.

Syntax

  • =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Arguments

  • lookup_value (required): The value to search for in the first column
  • table_array (required): The range containing the data
  • col_index_num (required): The column number to return from
  • range_lookup (optional): TRUE for approximate match, FALSE for exact match

Examples

  • =VLOOKUP("Apple", A2:C10, 2, FALSE) - Find exact match for Apple and return column 2 - Result: $1.50
  • =VLOOKUP(A2, Products!A:D, 3, FALSE) - Cross-sheet lookup - Result: Category

Overview

  • VLOOKUP is still the most searched Excel lookup. This guide covers exact-match syntax, real table layouts, when to switch to XLOOKUP, and how to fix #N/A without hiding real data problems.

Copy-paste scenarios (exact match)

  • Product price from ID: =VLOOKUP(G2,$A$2:$D$500,4,FALSE) — column 4 is Price when A=ID.
  • Employee department: =VLOOKUP(H2,$A$2:$C$200,3,FALSE).
  • Tax rate from customer code: lock table_array with $ before filling down.

When VLOOKUP is the wrong tool

  • Return column is to the left of the key → use [XLOOKUP](/functions/xlookup/) or [INDEX MATCH](/blog/index-match-excel-guide/).
  • You need all matching rows → use [FILTER](/functions/filter/) in Microsoft 365.
  • Shared file opens in Excel 2019 → keep VLOOKUP until everyone has Excel 2021/M365.

Audit before you trust the column

  • Spot-check 3 known IDs manually after building the formula.
  • Add a helper =EXACT(TRIM(G2),TRIM(A2)) on problem rows.
  • Full diagnostic: [VLOOKUP returning #N/A](/problems/vlookup-returning-na/).

Quick answer: vlookup excel

  • VLOOKUP finds a value in the first column of a table and returns a value from a column to the right. Use FALSE for exact match on IDs and codes.
  • Formula: =VLOOKUP(lookup_value, table_array, col_index_num, FALSE)
  • Put the lookup column as the leftmost column in table_array.
  • Use FALSE (or 0) for exact match on business keys.
  • If you see #N/A, check spaces, text vs number, and col_index_num after column inserts.

When to use VLOOKUP

  • Use VLOOKUP when maintaining older Excel workbooks or when compatibility with Excel 2019 and earlier is required.
  • Use FALSE for exact match unless you intentionally need an approximate match on sorted data.
  • Keep the lookup column as the first column in the table_array to avoid #N/A or wrong results.

VLOOKUP vs XLOOKUP decision table

  • Use VLOOKUP when the workbook must open in Excel 2019 or older, or when an existing model already depends on table_array layout.
  • Use XLOOKUP when you need a left lookup, a built-in not-found message, or a return column that is not to the right of the key.
  • Use INDEX MATCH when you maintain a legacy two-step lookup model or need a two-way intersection lookup.
  • Use FILTER when you need all matching rows to spill, not just the first match.

Sample lookup tables you can recreate

  • Price list: ProductID in column A, ProductName in B, Price in D — formula =VLOOKUP(G2,$A$2:$D$500,4,FALSE).
  • Employee directory: EmployeeID in column A, Department in C — formula =VLOOKUP(H2,$A$2:$C$200,3,FALSE).
  • Invoice lookup: CustomerCode in column A, TaxRate in E — lock the table with absolute references before copying down.

Fix #N/A and wrong results

  • Confirm FALSE for exact match on IDs, codes, and labels.
  • Clean spaces with TRIM and CLEAN before comparing values.
  • Review [VLOOKUP returning #N/A](/problems/vlookup-returning-na/) and [XLOOKUP vs VLOOKUP](/compare/xlookup-vs-vlookup/).

Step-by-step: first VLOOKUP in 5 minutes

  • 1. Put lookup IDs in column G starting at G2.
  • 2. Build table_array with the lookup column first (e.g. $A$2:$D$500).
  • 3. Set col_index_num to the return column position (4 = column D).
  • 4. Use FALSE for exact match.
  • 5. Copy down and spot-check three known IDs before trusting the column.

People also ask

  • Why is VLOOKUP not working? — Usually #N/A, wrong column index, or text vs number.
  • What is the 4th argument in VLOOKUP? — FALSE for exact match in most business data.
  • Can VLOOKUP search left? — No; use XLOOKUP or INDEX MATCH instead.

Common errors

  • #N/A when value not found
  • #REF! when column index exceeds range

Use cases

  • Data retrieval
  • Cross-referencing tables
  • Report generation

Frequently asked questions

  • What does FALSE mean in VLOOKUP? FALSE (or 0) forces an exact match. Use it for IDs, SKUs, and codes. TRUE is approximate match and requires a sorted first column.
  • Why must the lookup column be first in the table? VLOOKUP only searches the leftmost column of table_array. Rearrange columns or switch to XLOOKUP if the key is not leftmost.
  • VLOOKUP vs XLOOKUP for a new file? Use XLOOKUP in Excel 2021/M365 for left lookups and cleaner syntax. Keep VLOOKUP when the workbook must open in Excel 2019.
  • What is VLOOKUP in Excel and how do I use it? VLOOKUP (Vertical Lookup) searches for a value in the first column of a table and returns a value from a specified column in the same row. The syntax is =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]). For example, =VLOOKUP("Apple", A2:C10, 2, FALSE) finds "Apple" in column A and returns the value from column B (the 2nd column).
  • Why is VLOOKUP not finding a value that exists? Common reasons VLOOKUP fails to find existing values: 1) Extra spaces - use TRIM() on your data; 2) Different data types - numbers stored as text or vice versa; 3) Hidden characters - use CLEAN() to remove them; 4) Case doesn't matter for VLOOKUP, but formatting might; 5) The lookup value is not in the FIRST column of your table_array.
  • Can VLOOKUP look to the left? No, VLOOKUP cannot look to the left. It only searches the leftmost column of your table_array and returns values from columns to the right. To look left, use: 1) XLOOKUP (Excel 365/2021); 2) INDEX/MATCH combination; 3) Rearrange your data so the lookup column is on the left. INDEX/MATCH is the classic solution: =INDEX(A:A, MATCH(value, B:B, 0)).
  • How do I fix #N/A error in VLOOKUP? To fix #N/A errors in VLOOKUP: 1) Wrap in IFERROR: =IFERROR(VLOOKUP(...), "Not Found"); 2) Check for extra spaces with TRIM; 3) Ensure data types match (use VALUE() or TEXT()); 4) Verify the lookup value exists in the first column; 5) Make sure you're using FALSE for exact match. The #N/A error means the value wasn't found in your lookup range.

Editorial review

  • Reviewed by Excel.Directory Editorial Team. Updated May 2026.