VLOOKUP trips up more people than it should. You stare at that error message, wondering why Excel can’t just find the dang number you’re looking for. Here’s the thing: how to do a VLOOKUP in Excel isn’t actually complicated once you understand what’s happening under the hood. Most tutorials make it sound like rocket science, but it’s really just telling Excel to find a value in one column and grab the matching value from another column. That’s it.
This guide walks you through the real mechanics of VLOOKUP—no corporate jargon, no pretending this is harder than it is. By the end, you’ll know exactly how to set up a VLOOKUP formula, troubleshoot when it breaks, and use it on actual data that matters to your work.
What Is VLOOKUP and Why Should You Care?
Think of VLOOKUP like a filing system. You’ve got a huge spreadsheet with customer IDs in one column and their phone numbers in another. Someone hands you a customer ID and asks for the phone number. Instead of scrolling through thousands of rows manually, VLOOKUP finds that ID instantly and pulls the phone number right next to it.
VLOOKUP stands for “Vertical Lookup.” It searches vertically (top to bottom) in the leftmost column of a table and returns a value from a column to the right. That’s the whole concept. You’re not doing anything fancy—you’re just automating the “find and match” work your brain would normally do.
Why does this matter? Because once you know how to do a VLOOKUP in Excel, you save hours on repetitive data matching. Instead of copy-pasting or manually hunting for values, you write one formula and apply it to hundreds or thousands of rows. Your spreadsheet does the work while you grab coffee.
According to Microsoft’s official Excel documentation, VLOOKUP is one of the most-used functions because it solves a real problem that shows up constantly in business work.
The Basic Syntax: Breaking Down the Formula
Here’s the formula structure:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Let’s break this down into actual English:
- lookup_value: The thing you’re searching for. Could be a customer ID, product code, or anything else. This goes in a cell you reference (like A2).
- table_array: The entire table where your data lives. This includes the column you’re searching in AND the column you want to grab data from. Range example: A:D or A1:D500.
- col_index_num: Which column (counting from the left) contains the value you want to return. If your table is A:D, column A is 1, B is 2, C is 3, D is 4. You want data from column C? Use 3.
- range_lookup: TRUE or FALSE. FALSE means “find an exact match.” TRUE means “find the closest match.” For 95% of what you’ll do, use FALSE.
A real formula looks like this:
=VLOOKUP(A2, Sheet2!A:D, 3, FALSE)
This says: “Look for the value in A2, search for it in columns A through D on Sheet2, and return the value from the 3rd column (column C), and only accept exact matches.”
Step-by-Step: Setting Up Your First VLOOKUP
Let’s say you’ve got a product inventory list on Sheet1 with product codes in column A and prices in column B. On Sheet2, you have a sales order with product codes in column A, and you want to automatically fill in the prices in column B. Here’s exactly what to do:
- Click the cell where you want the result. In this example, click cell B2 on Sheet2 (the first price cell under your header).
- Type the equals sign. Start your formula with =VLOOKUP(
- Enter the lookup value. Type A2 (the product code you’re looking for). Your formula now reads: =VLOOKUP(A2,
- Add the table array. Type Sheet1!A:B (or the specific range like Sheet1!A1:B500 if you want to be precise). Your formula now reads: =VLOOKUP(A2, Sheet1!A:B,
- Specify the column index. Since prices are in the 2nd column of your range, type 2. Your formula now reads: =VLOOKUP(A2, Sheet1!A:B, 2,
- Set the range lookup. Type FALSE for exact matches. Your complete formula: =VLOOKUP(A2, Sheet1!A:B, 2, FALSE)
- Press Enter. Excel searches Sheet1’s column A for the product code from A2, finds it, and returns the price from column B.
- Copy the formula down. Click the cell with your formula. Grab the small square at the bottom-right corner (the fill handle) and drag it down to all rows that need the formula. Excel automatically adjusts A2 to A3, A4, A5, etc.
That’s it. You’ve done a VLOOKUP. The hardest part is usually getting the table range right.
Common VLOOKUP Mistakes (And How to Fix Them)

Mistake #1: Your lookup column isn’t the leftmost column.
VLOOKUP only searches the leftmost column of your table array. If your data is organized with prices in column A and product codes in column B, VLOOKUP can’t find the product code and return the price. It doesn’t work that way. Solution: Use data organization techniques to rearrange your columns, or switch to INDEX/MATCH (more advanced, but more flexible).
Mistake #2: Your table array is too narrow.
If you want to return data from column D but your table array is only A:B, VLOOKUP will throw an error. The table array must include both the lookup column AND the column with your desired result. If you need column D, your range must go at least to column D (A:D, for example).
Mistake #3: Using TRUE when you need FALSE (or vice versa).
TRUE finds the closest match, which only works if your lookup column is sorted in ascending order. Most of the time, you want FALSE for exact matches. Unless you’re specifically doing a range lookup (like finding the tax bracket for an income amount), stick with FALSE.
Mistake #4: Forgetting to lock your table array with dollar signs.
When you copy a formula down, the lookup_value (A2) changes to A3, A4, etc., which is correct. But your table_array (Sheet1!A:B) should stay the same. To lock it, use dollar signs: Sheet1!$A:$B. Your formula becomes: =VLOOKUP(A2, Sheet1!$A:$B, 2, FALSE). Now when you copy it down, the table array doesn’t shift.
Mistake #5: Searching in the wrong sheet.
Double-check your sheet reference. Sheet1 vs. sheet1 matters. If you’re referencing a sheet with a space in the name (like “Product List”), use single quotes: ‘Product List’!A:B.
Beyond the Basics: Tips That Actually Work
Tip #1: Combine VLOOKUP with IFERROR to handle missing values.
When VLOOKUP can’t find a match, it returns #N/A, which looks messy in reports. Wrap your VLOOKUP in IFERROR to display something cleaner:
=IFERROR(VLOOKUP(A2, Sheet1!$A:$B, 2, FALSE), "Not Found")
Now if the product code doesn’t exist, the cell displays “Not Found” instead of an error.
Tip #2: Use absolute references for your table array.
Always use dollar signs on your table array: $Sheet1.$A:$B. This prevents accidental shifts when copying formulas. Your lookup_value (A2) should stay relative so it changes with each row.
Tip #3: Keep your lookup data clean.
Extra spaces, inconsistent capitalization, or typos in your lookup column will cause VLOOKUP to fail. If you’re looking up customer names and one row has “John Smith” while another has “john smith ” (with a trailing space), VLOOKUP won’t match them. Use data cleaning techniques before running VLOOKUP.
Tip #4: Consider INDEX/MATCH for complex lookups.
Once you’re comfortable with VLOOKUP, learn INDEX/MATCH. It’s more flexible because it lets you search any column (not just the leftmost) and return data from any other column. According to ExcelJet’s formula database, INDEX/MATCH is considered the “next level” after VLOOKUP.
Tip #5: Use VLOOKUP with named ranges for readability.
Instead of typing Sheet1!$A:$B, you can create a named range called “ProductList” and use that in your formula: =VLOOKUP(A2, ProductList, 2, FALSE). This makes your formula easier to read and maintain.
Troubleshooting VLOOKUP Errors
#N/A Error
This means VLOOKUP couldn’t find the lookup value. Check for:
- Typos or extra spaces in your lookup value or lookup column
- Case sensitivity issues (though VLOOKUP is usually case-insensitive)
- The lookup value existing in a different format (like “123” as text vs. 123 as a number)
- Using TRUE when you should use FALSE
#REF! Error
Your table array references a sheet or range that doesn’t exist. Verify the sheet name and range are correct. Check for typos in the sheet reference.
#VALUE! Error
Usually means your col_index_num is text instead of a number, or there’s something wrong with your formula syntax. Double-check that col_index_num is a plain number (like 2, not “2”).
#NAME? Error
Excel doesn’t recognize VLOOKUP. This happens if you misspell it (VLOOKUP, not VLOOKUP) or if you’re using a version that doesn’t support it (extremely rare).
Formula returns the wrong value
Your col_index_num might be wrong. Count your columns carefully, starting from 1 in the leftmost column of your table array. If you want data from the 4th column, use 4.
For more detailed troubleshooting, Microsoft’s support page for VLOOKUP has a comprehensive error reference.
Real-World Examples You Can Use Right Now
Example 1: Employee Lookup
You have an employee directory on Sheet1 with employee IDs in column A and email addresses in column B. On Sheet2, you have a list of employee IDs and want to fill in emails.
=VLOOKUP(A2, Sheet1!$A:$B, 2, FALSE)
This finds the employee ID from A2 in Sheet1’s column A and returns the matching email from column B.
Example 2: Product Price Lookup with Error Handling
You’re creating an invoice. Column A has product codes, and you want to pull prices from your product catalog on Sheet1. If a product code doesn’t exist, you want “Unknown” to display instead of an error.
=IFERROR(VLOOKUP(A2, Sheet1!$A:$C, 3, FALSE), "Unknown")
This looks up the product code, returns the price from the 3rd column, and displays “Unknown” if the code isn’t found.
Example 3: Multi-column lookup with multiple returns
You want to return both price and stock quantity for a product. You’ll need two VLOOKUP formulas:
=VLOOKUP(A2, Sheet1!$A:$D, 3, FALSE) (for price, column 3)
=VLOOKUP(A2, Sheet1!$A:$D, 4, FALSE) (for stock, column 4)
Put the first in column B and the second in column C. Both search the same table but return different columns.
Example 4: Lookup with different sheet references
Your lookup table is on a completely different workbook. Use the full file path:
=VLOOKUP(A2, '[Other Workbook.xlsx]Sheet1'!$A:$B, 2, FALSE)
Make sure the other workbook is open, or use the full file path including the drive location.
Frequently Asked Questions
Can VLOOKUP search from right to left instead of left to right?
– No, VLOOKUP only searches the leftmost column and returns data to the right. If you need to search right to left, use INDEX/MATCH instead, which offers more flexibility. It’s slightly more complex but worth learning once you’re comfortable with VLOOKUP.
What’s the difference between VLOOKUP and HLOOKUP?
– VLOOKUP searches vertically (top to bottom), while HLOOKUP searches horizontally (left to right). Use HLOOKUP when your lookup data is organized in rows instead of columns. The syntax is nearly identical; you just swap the function name.
Why does my VLOOKUP return #N/A even though the value exists?
– Usually it’s extra spaces, different capitalization, or the value being formatted differently (text vs. number). Try wrapping your lookup_value in TRIM() to remove spaces: =VLOOKUP(TRIM(A2), Sheet1!$A:$B, 2, FALSE). Also verify that FALSE is your range_lookup parameter.
Can I use VLOOKUP with multiple criteria?
– Not directly. Standard VLOOKUP only searches one column. For multiple criteria (like finding a price based on both product code AND customer type), use INDEX/MATCH with multiple conditions, or add a helper column that combines the criteria.
Is there a limit to how much data VLOOKUP can handle?
– No hard limit, but VLOOKUP searches from top to bottom, so larger tables take slightly longer. For massive datasets (millions of rows), performance might slow down. Most business spreadsheets (thousands of rows) work fine. If you’re worried about speed, learn about using filters or pivot tables instead.

What if my lookup table changes frequently?
– VLOOKUP updates automatically as long as the table structure stays the same (same columns, same order). If someone adds or removes columns, your col_index_num might break. Use named ranges to make updates easier, or consider using a database tool instead of Excel for frequently changing data.
Can I use VLOOKUP to return multiple matching values?
– Standard VLOOKUP only returns the first match. If you need all matching values, you’ll need a more advanced approach like using FILTER (in newer Excel versions) or combining VLOOKUP with other functions. For most beginners, the first match is what you need anyway.




