Lookup & Reference
27.1K monthly searches
Intermediate
5 min read

VLOOKUP Formula in Excel - Vertical Lookup & Table Search

Search for data with the VLOOKUP function in Excel....

Quick Start

Syntax

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

Parameters

lookup_value - Required. The value to search for in the first column (e.g., employee ID "E001", product code "P123").

table_array - Required. The table range containing data (e.g., A2:D10). First column is searched, other columns return values.

col_index_num - Required. Column number to return value from (2 for 2nd column, 3 for 3rd, etc.). Count from left of table.

range_lookup - Optional. FALSE for exact match (most common), TRUE for approximate match (grades, ranges). Defaults to TRUE.

Simplest Example

ABCDEFG
1Emp IDNameDepartmentSalarySearch IDDepartment
2E001John SmithSales$65,000E003
3E002Sarah JohnsonHR$58,000
4E003Mike ChenEngineering$82,000
2E001John SmithSales$65,000E003
=VLOOKUP(F2,$A$2:$D$6,3,FALSE)
Engineering

Quick Reference

Exact Match Lookup
=VLOOKUP("E001", A2:D10, 3, FALSE)

Find "E001" in column A, return 3rd column value

Returns "Engineering" from column C

Dynamic Cell Reference
=VLOOKUP(F2, $A$2:$D$10, 3, FALSE)

Look up value from F2, $ locks table when copying

Formula adjusts F2→F3 but table range stays fixed

With Error Handling
=IFERROR(VLOOKUP(F2,A2:D10,3,FALSE),"Not Found")

Returns "Not Found" instead of #N/A error

Graceful error handling for missing values

Approximate Match (Ranges)
=VLOOKUP(85, A2:B10, 2, TRUE)

Find closest value ≤85 for grades, tax brackets

Returns grade "B" for score 85 from range table

Real-World Examples

Employee Information Lookup System

Use the VLOOKUP function in Excel to build employee lookup systems where you search by employee ID and automatically retrieve department, salary, or contact information. This lookup formula pattern is essential for HR managers, payroll specialists, and department heads who need instant access to employee data. The function eliminates manual searching through employee rosters, reduces data entry errors in HR reports, and enables dynamic dashboards where selecting an employee ID populates all related information automatically across multiple cells.

ABCDFG
1Emp IDNameDepartmentSalarySearch IDDepartment
2E001John SmithSales$65,000E003
3E002Sarah JohnsonHR$58,000
4E003Mike ChenEngineering$82,000
5
=VLOOKUP(F2,$A$2:$D$6,3,FALSE)
Engineering
Pro Tip: Use $A$2:$D$6 absolute references so table range stays fixed when copying the formula down to multiple rows.
Pattern: =VLOOKUP(lookup_id, $table_range$, column_number, FALSE)
Grade Assignment from Score Ranges

Assign letter grades based on numeric scores using the VLOOKUP function in Excel with approximate match (TRUE). This technique works perfectly for tax brackets, commission tiers, shipping rates, and any scenario where values fall into ranges. The formula with TRUE parameter finds the largest value less than or equal to your lookup value, making it ideal for educators assigning grades, sales managers calculating tiered commissions, and finance teams applying progressive tax rates automatically.

ABCD
1Min ScoreGradeStudent ScoreLetter Grade
20F85
360D
470C
580B
690A
7
=VLOOKUP(C2,$A$2:$B$6,2,TRUE)
B
Pattern: =VLOOKUP(score, $range_table$, 2, TRUE) for approximate match lookups

Common Mistakes to Avoid

=VLOOKUP("E003", A2:D10, 4, TRUE)Using TRUE for exact match lookups

❌ The Problem:

  • Returns incorrect results if data is not sorted
  • May match wrong values unexpectedly
  • Confusing behavior for users expecting exact matches
  • Common cause of VLOOKUP errors and data quality issues

✅ Solution:

=VLOOKUP("E003", A2:D10, 4, FALSE)

Always use FALSE for exact match lookups like employee IDs, product codes, or account numbers. The function defaults to TRUE (approximate match), but most real-world lookups need exact matching. FALSE ensures you get the exact record you want or a clear #N/A error if not found, rather than silently returning wrong data.

=VLOOKUP("E003", B2:D10, 3, FALSE)Search column not in leftmost position

❌ The Problem:

  • VLOOKUP only searches the first column of the range
  • Returns #N/A even though value exists in the table
  • Fundamental limitation of VLOOKUP function
  • Source of frustration for users

✅ Solution:

=XLOOKUP("E003", B2:B10, D2:D10)

VLOOKUP can only search the leftmost column of your table range. If you need to search a column and return values to its left, use <Link href="/formulas/xlookup">XLOOKUP</Link> or <Link href="/formulas/index">INDEX</Link>/<Link href="/formulas/match">MATCH</Link> instead. This function has this left-to-right limitation built in, which is why XLOOKUP is often recommended as the modern replacement.

=VLOOKUP(F2, A2:D10, 3, FALSE)Forgetting to lock table range with $ signs

❌ The Problem:

  • Table range shifts when copying formula down (A2:D10 becomes A3:D11, A4:D12, etc.)
  • Results become incorrect or show #N/A errors
  • Very common mistake that's hard to spot
  • Wastes time debugging seemingly random errors

✅ Solution:

=VLOOKUP(F2, $A$2:$D$10, 3, FALSE)

Use absolute references ($A$2:$D$10) for the table range so it stays fixed when copying the formula to other cells. The lookup value (F2) should remain relative to adjust for each row. This is the most common mistake and the easiest to fix - just add $ signs before column letters and row numbers in your table range.

Frequently Asked Questions

Other Lookup & Reference Functions

Related Formulas

Master these VLOOKUP variants:

Master Excel VLOOKUP

From basics to advanced - AI generates perfect formulas instantly.