How to Use VLOOKUP in Excel: Complete Guide with Examples
Master VLOOKUP in Excel: syntax, examples, common errors, and when to use INDEX/MATCH or XLOOKUP instead. Beginner to advanced techniques.

VLOOKUP is one of Excel's most popular and powerful functions, used for looking up values in a table and returning corresponding information from related columns. Whether you're matching customer IDs to customer names, looking up product prices from an inventory table, or finding any data based on a unique identifier, VLOOKUP solves these problems efficiently. Despite VLOOKUP's age (it's been in Excel since the 1990s) and the introduction of newer alternatives like XLOOKUP, VLOOKUP remains widely used and is essential knowledge for any Excel user moving beyond basic spreadsheet work.
The VLOOKUP syntax is: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]). The lookup_value is what you're searching for. The table_array is the range containing your data with the lookup column on the left. The col_index_num is which column from the table to return (counting from 1 starting at the leftmost column). The optional range_lookup specifies whether to find an exact match (FALSE or 0) or approximate match (TRUE or 1, the default). Most VLOOKUP usage uses exact match, so always specify FALSE explicitly for clarity.
A simple example: imagine a table in cells A2:B10 with employee IDs in column A and names in column B. To find the name for employee ID 1004 in cell D2, you'd write: =VLOOKUP(1004, A2:B10, 2, FALSE). VLOOKUP finds 1004 in column A, then returns the corresponding value from column B (column index 2 in the table). The FALSE argument specifies exact match. Result: the employee name corresponding to ID 1004. This basic pattern handles most VLOOKUP use cases, with variations for different specific scenarios.
This guide covers VLOOKUP comprehensively: syntax and usage patterns, common errors and their fixes, when to use VLOOKUP versus alternatives like INDEX/MATCH or XLOOKUP, advanced techniques for multiple criteria lookups, and practical examples across different scenarios. Whether you're learning VLOOKUP for the first time or refining existing skills, you'll find practical guidance here.
For job interviews testing Excel skills, VLOOKUP is one of the most commonly tested functions. Interviewers often ask candidates to write VLOOKUP from memory, debug a broken VLOOKUP formula, or convert VLOOKUP to INDEX/MATCH. Practice these scenarios before interviews — being able to write VLOOKUP confidently signals broader Excel competence to interviewers. Demonstrating awareness of VLOOKUP's limitations and modern alternatives (XLOOKUP, INDEX/MATCH) suggests deeper Excel knowledge beyond just memorized syntax.
Syntax: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Most common form: =VLOOKUP(A2, $D$2:$F$100, 2, FALSE)
Exact match: Always specify FALSE for range_lookup unless you specifically want approximate match
Lookup column: Must be the leftmost column of your table array
Limitation: Can only look right (return columns to the right of lookup column)
The first VLOOKUP argument — lookup_value — can be a literal value (a number, text in quotes), a cell reference, or even a formula result. Most commonly it's a cell reference: VLOOKUP(A2, ...) looks up whatever value is in cell A2. As you copy the formula down rows, A2 becomes A3, A4, etc., performing the lookup for each row in your data. This pattern of looking up values per row from a reference table is the most common VLOOKUP application — adding columns of data to existing rows based on lookup matches.
The table_array argument specifies where to look. This is the entire range containing both your lookup column and the columns you want to return from. For most uses, lock this range with absolute references ($) so it doesn't shift when you copy the formula: $A$2:$D$100 stays fixed regardless of where you copy the VLOOKUP formula. Without absolute references, copying the formula down would shift the table reference downward, eventually moving past your data and breaking the lookup. Always use absolute references for table_array unless you specifically need relative behavior.
The col_index_num is the column number within your table_array (counting from 1, starting at the leftmost column). If your table_array is A:D, then column A is index 1, B is 2, C is 3, D is 4. To return values from column C, your col_index_num is 3. Common errors include forgetting that the count starts at 1 (not 0 like programming languages), or using the spreadsheet column letter instead of the index number.
The number must reflect the column's position within the table_array specifically, not its position in the worksheet overall. The Excel formulas framework includes VLOOKUP among other lookup-and-reference functions that work together for various data tasks.
The range_lookup argument deserves explicit attention because confusion here causes many VLOOKUP errors. FALSE (or 0) requires exact match — VLOOKUP returns the value only if it finds an exact match for your lookup_value, otherwise returning #N/A. TRUE (or 1) allows approximate match — VLOOKUP finds the largest value less than or equal to your lookup_value.
Approximate match requires the lookup column to be sorted ascending. Almost all VLOOKUP usage wants exact match (FALSE); always specify this explicitly rather than relying on defaults. Approximate match is mainly useful for grade lookups where you have ranges like 90+ for A, 80-89 for B, etc.
Common VLOOKUP errors include #N/A (lookup value not found in the table), #REF! (col_index_num exceeds the number of columns in table_array), #VALUE! (col_index_num is less than 1 or non-numeric), and #NAME? (typically a typo in the function name). Wrapping VLOOKUP in IFERROR provides graceful handling: =IFERROR(VLOOKUP(A2,$D$2:$F$100,2,FALSE), "Not Found") returns "Not Found" instead of #N/A when the lookup fails. This produces cleaner output than raw error messages, especially for reports shared with non-technical readers. The conditional formatting can highlight rows with successful or failed lookups for visual pattern recognition.
Cross-platform considerations matter for VLOOKUP-heavy spreadsheets shared between Excel and Google Sheets users. Google Sheets has VLOOKUP that works similarly to Excel's, with mostly compatible behavior. Some specific differences exist around array formula handling and certain edge cases. Sharing VLOOKUP-based spreadsheets between platforms generally works but testing critical formulas in the destination platform prevents surprises. For pure cloud collaboration, Google Sheets' compatibility with Excel files is good enough for most business use.

VLOOKUP Components Explained
The value you're searching for. Can be literal value, cell reference, or formula result. Most commonly a cell reference like A2 that changes per row when formula is copied. Must match exactly to a value in the leftmost column of your table_array (when using exact match).
Range containing both lookup column (leftmost) and result columns. Use absolute references ($) to prevent shifts when copying. Should encompass all rows of your reference data plus needed columns. Lookup column must be the leftmost column — VLOOKUP cannot look left.
Column number within table_array (counting from 1) to return. If table_array is A:D, column B is index 2, C is 3, D is 4. Common error: forgetting count starts at 1, or using worksheet column letter instead of index number. Number must reflect column's position within table_array specifically.
FALSE/0 for exact match (typical use); TRUE/1 for approximate match (less common, requires sorted lookup column). Always specify explicitly rather than relying on defaults. Approximate match useful mainly for grade-band style lookups; exact match for typical ID-based lookups.
VLOOKUP's main limitation is the leftmost-column requirement. The lookup column must be the leftmost column of your table_array; VLOOKUP cannot look left. If your data has the unique identifier in column C and you want to look up values in column A based on column C values, VLOOKUP can't directly do this. You'd need to rearrange columns so the lookup column is leftmost, or use INDEX/MATCH or XLOOKUP which don't have this limitation. Many real-world spreadsheets have the lookup data inconveniently placed, making this limitation a frequent issue.
INDEX/MATCH provides a more flexible alternative to VLOOKUP. The combined formula =INDEX(return_column, MATCH(lookup_value, lookup_column, 0)) looks up values without column-position requirements — the lookup column can be anywhere in your data, not just leftmost. INDEX/MATCH also performs better on large datasets because it avoids unnecessary column scanning that VLOOKUP performs. While the syntax is more complex than VLOOKUP, the flexibility and performance often justify the learning investment. Most experienced Excel users prefer INDEX/MATCH for new work while maintaining ability to read VLOOKUP from legacy spreadsheets.
XLOOKUP, introduced in Microsoft 365 in 2019, provides a modern replacement that addresses VLOOKUP's limitations. Syntax: =XLOOKUP(lookup_value, lookup_array, return_array). XLOOKUP looks left or right freely, defaults to exact match (no need for FALSE argument), handles missing values gracefully with built-in if_not_found parameter, and works with arrays for multi-result returns. For users on Microsoft 365, XLOOKUP is generally preferable to VLOOKUP for new work — simpler syntax with more capability. The COUNTIF function and other lookup-related functions complement VLOOKUP/XLOOKUP for various data analysis scenarios.
For multi-criteria lookups where you need to match on multiple columns, several approaches work. Concatenating columns into a helper column creates a single unique value combining multiple criteria, which VLOOKUP can then handle. INDEX/MATCH with array formulas can match multiple criteria directly. XLOOKUP with concatenation handles multi-criteria similarly. Each approach has tradeoffs in complexity, performance, and readability. For occasional multi-criteria needs, helper columns are usually simplest; for repeated multi-criteria patterns in production spreadsheets, INDEX/MATCH or XLOOKUP often produces cleaner long-term solutions.
Performance considerations matter for large datasets. VLOOKUP can become slow with thousands of lookup operations against very large reference tables. Excel calculates each VLOOKUP independently, which adds up across many formula instances. Performance optimizations include: sorting lookup tables and using approximate match (faster than exact match for sorted data); limiting table_array to actually-needed rows rather than entire columns; using INDEX/MATCH which can be faster than VLOOKUP for many scenarios; converting frequently-looked-up values to Excel Tables for better performance. For very large datasets, Power Query or other tools sometimes outperform VLOOKUP-based approaches significantly.

VLOOKUP Examples by Use Case
Basic VLOOKUP for one-column return:
- Setup: Lookup table in A2:B100 (IDs in column A, Names in column B)
- Goal: Get name for ID in cell D2
- Formula: =VLOOKUP(D2, $A$2:$B$100, 2, FALSE)
- Result: Name corresponding to ID in D2
- Copy down: Pulls names for each ID listed in column D
For users transitioning from VLOOKUP to XLOOKUP (the modern replacement available in Microsoft 365), the conceptual mapping is straightforward but worth practicing. XLOOKUP's three required arguments map roughly to VLOOKUP's first three but with key differences. lookup_array is the column to search (independent of return_array, which is the column to return) — no more leftmost-column requirement. Default behavior is exact match — no FALSE argument needed for typical usage. Optional arguments add powerful capabilities: if_not_found provides custom error message; match_mode allows wildcard matching; search_mode controls direction.
For organizations standardizing on specific lookup approaches, choosing between VLOOKUP, INDEX/MATCH, and XLOOKUP affects training, code reviews, and long-term maintainability. Microsoft 365 organizations can standardize on XLOOKUP for cleanest code. Mixed-version organizations may prefer INDEX/MATCH for compatibility with older Excel versions while maintaining readability. Legacy organizations with extensive VLOOKUP-based spreadsheets may continue VLOOKUP usage to maintain consistency. Each choice has merit; explicit team standards prevent the chaos of mixed approaches across spreadsheets that someone has to maintain.
Common errors when learning VLOOKUP include: forgetting absolute references on table_array (causing reference drift when copying formulas), using TRUE for range_lookup when you need exact match, miscounting col_index_num, and looking up values that don't exist in the reference table (#N/A errors). Each error has a specific recognition pattern and fix. Building familiarity through practice with deliberately-introduced errors helps you recognize and fix them quickly when they arise in real work. Many Excel learning resources include specific error scenario exercises for this purpose.
For students and professionals building Excel skills systematically, VLOOKUP is one of the foundational functions worth investing time to master thoroughly. Beyond the basic syntax, understanding the function's limitations, common error patterns, performance characteristics, and relationship to alternative approaches builds Excel fluency that supports many other data tasks. The pattern of looking up data based on identifiers appears constantly in business, scientific, and personal data work — strong VLOOKUP capability supports work across many domains and contexts.
Looking forward, Microsoft continues to refine Excel's lookup capabilities. XLOOKUP represents the current state-of-the-art for general lookup needs. Future Excel versions will likely add additional lookup functions or extend XLOOKUP capabilities. The fundamental need — finding data in tables based on key values — won't disappear, but the specific functions for accomplishing this will continue evolving. Building strong fundamentals with current functions while remaining open to newer alternatives produces sustainable Excel skills across changing tool capabilities.

The VLOOKUP range_lookup argument defaults to TRUE (approximate match) if you don't specify it. Most lookup needs require exact match (FALSE) — using approximate match by accident produces incorrect results that may go unnoticed if you don't realize approximate match was used. Always explicitly include FALSE as the fourth argument unless you specifically intend approximate match. Building this habit prevents subtle errors that cause downstream data quality problems in spreadsheets relying on VLOOKUP results.
Beyond VLOOKUP basics, integrating lookups with other Excel features creates powerful analytical patterns. Combine VLOOKUP with IF statements to handle conditional lookups (different reference tables based on conditions). Combine with TEXT or VALUE functions when lookup values need format normalization. Combine with INDIRECT for dynamic table references that change based on cell values. Each combination extends VLOOKUP's basic capability to handle more sophisticated scenarios than the function alone supports.
For data validation purposes, VLOOKUP can verify that user entries match valid options. Combining Data Validation (List source) with VLOOKUP-based dropdowns ensures consistent data entry. VLOOKUP-based formulas can flag entries that don't match reference tables, helping identify data quality issues. The combination of validation and lookup creates more robust data entry forms than either feature alone.
For automated reporting workflows, VLOOKUP-based formulas in templates pull data automatically when source data refreshes. Monthly reports that lookup current values, year-over-year comparisons that reference prior period data, and various other analytical patterns all benefit from VLOOKUP's ability to consistently retrieve data based on stable identifiers. Setting up these patterns once produces ongoing automated value as data refreshes happen monthly or quarterly.
The combination of VLOOKUP with Excel Tables produces particularly clean lookup patterns. Tables with named ranges create readable lookup formulas: =VLOOKUP(A2, EmployeeData, 2, FALSE) is more self-documenting than =VLOOKUP(A2, $E$2:$M$1000, 2, FALSE). Named tables also auto-expand as data is added — your lookups automatically include new rows without manual range adjustments. For ongoing data sets that grow over time, table-based VLOOKUP produces more maintainable formulas than range-based references.
VLOOKUP mastery represents a meaningful Excel skill milestone. Many job postings specifically mention VLOOKUP capability in required skills lists. Demonstrating proficiency in interviews and on the job opens doors to data-related roles that less-skilled candidates can't reach. The investment in learning VLOOKUP thoroughly — including its limitations and alternatives — produces career value far exceeding the time required to develop the skill. For aspiring data professionals, VLOOKUP capability is one of the foundational Excel skills employers expect candidates to demonstrate confidently.
For business contexts where VLOOKUP errors could affect financial reporting or operational decisions, building robust VLOOKUP-based formulas with error handling, validation, and clear documentation matters. Wrap VLOOKUPs in IFERROR for graceful failure. Validate that lookup tables stay current. Document complex formulas with cell comments explaining what they do and why. These practices distinguish production-quality spreadsheet work from quick-and-dirty solutions, and pay dividends when spreadsheets need to be maintained or modified by colleagues months or years later.
VLOOKUP Quick Facts
VLOOKUP vs. Alternatives
- +VLOOKUP: widely known and used, available in all Excel versions
- +VLOOKUP: simpler syntax than INDEX/MATCH for basic lookups
- +INDEX/MATCH: handles left lookup, better performance on large tables
- +XLOOKUP: simpler than VLOOKUP, no leftmost-column limit, exact match default
- +Alternatives: avoid common VLOOKUP error patterns through better defaults
- −VLOOKUP: leftmost-column requirement causes layout issues
- −VLOOKUP: defaults to TRUE causing accidental approximate matches
- −VLOOKUP: slow on very large reference tables relative to alternatives
- −INDEX/MATCH: more complex syntax than VLOOKUP for simple cases
- −XLOOKUP: requires Microsoft 365 — not available in older Excel versions
VLOOKUP Questions and Answers
About the Author
Attorney & Bar Exam Preparation Specialist
Yale Law SchoolJames R. Hargrove is a practicing attorney and legal educator with a Juris Doctor from Yale Law School and an LLM in Constitutional Law. With over a decade of experience coaching bar exam candidates across multiple jurisdictions, he specializes in MBE strategy, state-specific essay preparation, and multistate performance test techniques.