How to Vlookup From Another Sheet in Excel
Learn multiple Excel methods to vlookup from another sheet with step-by-step examples and practical applications.
How to Vlookup From Another Sheet in Excel
Why This Task Matters in Excel
Every professional who lives in spreadsheets eventually needs to pull data from one worksheet into another. Picture a sales report that has to combine monthly orders on the “Orders” sheet with customer discounts stored on a separate “Customers” sheet, or an HR dashboard that must pull salary grades from a master compensation tab into a staffing analysis. Being able to “look up” a value from a different sheet:
- Eliminates manual copy-paste mistakes
- Maintains a single source of truth, so updates in one sheet flow automatically to all dependent sheets
- Scales to thousands (or millions) of rows, something no manual approach can handle efficiently
Across industries, the need is universal:
- Finance teams reconcile budget lines on one sheet against actuals on another
- Marketing analysts join campaign IDs on a summary sheet to detailed spend in a separate data dump
- Supply-chain coordinators pull lead-time information from a master parts list into an inventory forecast
Excel shines here because worksheets can hold independent but linked tables. Using lookup formulas or dynamic array functions, you can reference any range in any sheet of the same workbook—no extra software or coding required. Without this skill, teams risk broken links, duplicated data, and reports that drift out of sync. Mastering “vlookup from another sheet” therefore sits at the intersection of data integrity, automation, and analysis speed—three pillars of modern spreadsheet work. It also serves as a gateway skill for deeper topics such as relational data modeling, Power Query, and dashboard automation.
Best Excel Approach
For most situations, the classic VLOOKUP remains the simplest and most widely understood method. While newer functions like XLOOKUP offer more flexibility, VLOOKUP is available in every version of Excel still in use—including legacy installations that many organizations cannot upgrade immediately.
Core requirements for VLOOKUP from another sheet:
- A lookup value in the current sheet
- A table array in the other sheet that contains both the lookup column and the return column
- A column index number indicating which column from that array to return
- An optional match mode (exact or approximate)
Syntax overview:
=VLOOKUP(lookup_value, 'OtherSheet'!table_array, col_index, [range_lookup])
Why this approach is best:
- Universally compatible (Excel 2007 through Microsoft 365)
- Simple four-argument structure that beginners grasp quickly
- Automatically updates if the source sheet changes, preserving live links
When to consider alternatives (INDEX/MATCH, XLOOKUP, Power Query):
- Need to look left (return columns to the left of the lookup column)
- Want spill results for multiple columns at once
- Require robust error handling or wildcard support
Still, for mainstream “pull one value per row” tasks, VLOOKUP is unbeatable in speed and familiarity.
=VLOOKUP(A2, 'Prices'!$A:$D, 4, FALSE)
Alternative modern function:
=XLOOKUP(A2, 'Prices'!$A:$A, 'Prices'!$D:$D)
Parameters and Inputs
Before typing any formula, prepare your inputs carefully:
- lookup_value – The cell in your current sheet you want to match (text, number, or date). Make sure it is clean of extra spaces and stored in the same data type as the source sheet.
- table_array – The full rectangle of data on the other sheet that contains both lookup and return columns, such as \'Products\'![A:D] or, better, a named range or Excel Table (e.g., ProductsTbl). Lock it with absolute references ($) if you plan to copy the formula down.
- col_index_num – A whole number representing the column position inside table_array, counting from the leftmost column as 1. If your return field is in column D of [A:D], the index is 4.
- range_lookup – Optional. Use FALSE (or 0) for exact matches, TRUE (or omitted) for approximate matches. In business reporting, exact is almost always the safer choice.
- Data preparation – Sort ascending only if you need approximate mode. Remove duplicates in the lookup column for predictable results.
- Edge cases – Beware blank cells, mixed data types (e.g., numbers stored as text), and hidden characters. Use TRIM or CLEAN where necessary.
- Validation rules – Confirm that lookup_value is unique in the source table; otherwise, VLOOKUP returns the first match only.
Step-by-Step Examples
Example 1: Basic Scenario
Imagine a “Sales” sheet with an ItemID in column A and a “Catalog” sheet containing a master list of ItemID, Description, Category, and Unit Price in columns A–D.
Sample data:
Sales sheet
[A] ItemID | [B] Quantity
Catalog sheet
[A] ItemID | [B] Description | [C] Category | [D] Unit Price
Objective: Bring the Unit Price from Catalog into Sales column C.
Steps:
- Activate the Sales sheet and click cell C2 (first row of results).
- Enter the formula:
=VLOOKUP(A2, 'Catalog'!$A:$D, 4, FALSE)
- Press Enter. Excel returns the correct price for the ItemID in A2.
- Copy or double-click the fill handle to propagate the formula down the column.
- Format column C as Currency for readability.
Why it works:
- A2 supplies the lookup value.
'Catalog'!$A:$Dincludes both the lookup column (ItemID) and the return column (Unit Price).- 4 instructs Excel to pull from the fourth column in that range.
- FALSE forces an exact match, preventing accidental mismatches.
Variations:
- Move the Catalog data to a defined Table (Ctrl+T) and rewrite the formula with structured references for stronger resilience.
- If you also need Description and Category, replicate the formula with column indices 2 and 3.
Troubleshooting:
- If you see #N/A, confirm the ItemID truly exists on Catalog, and check for trailing spaces.
- If the wrong price appears, verify that the ItemID column in Catalog is sorted correctly and that no duplicates exist.
Example 2: Real-World Application
Scenario: A purchasing department maintains monthly Purchase Orders on one sheet and a separate Vendor Master sheet that stores supplier payment terms and contact information. Managers want to add the vendor’s payment terms next to each PO line.
Data setup:
PurchaseOrders sheet
[A] PO Number | [B] VendorID | [C] PO Amount | [D] Payment Terms (blank)
VendorMaster sheet
[A] VendorID | [B] Supplier Name | [C] Payment Terms | [D] Contact Email
Walkthrough:
- Convert VendorMaster to an Excel Table named VendorTbl for clarity (
Ctrl+T). - In PurchaseOrders!D2 enter:
=VLOOKUP(B2, VendorTbl[[VendorID]:[Payment Terms]], 3, FALSE)
Explanation: VendorTbl[[VendorID]:[Payment Terms]] covers columns VendorID, Supplier Name, and Payment Terms. Column index 3 returns Payment Terms.
3. Copy down. Because VendorTbl automatically expands and keeps absolute addressing, the formula remains clean.
4. Optional: Apply conditional formatting to highlight POs with “Net 90” terms (slow cash cycle).
5. Link the workbook to a Power BI dashboard; since the table reference is stable, refreshes pull new vendor terms automatically.
Business impact: The formula empowers procurement analysts to flag long payment cycles, negotiate earlier terms, and improve cash flow—without manual lookups each month.
Performance note: Using a Table rather than full-column references avoids scanning empty rows, providing faster calculation on large vendor lists.
Example 3: Advanced Technique
Challenge: You need to look up multiple columns from another sheet in a single pass and spill them horizontally, plus handle missing matches gracefully.
Solution: Combine the modern XLOOKUP with IFERROR, and wrap in an array that returns three columns at once.
Data: Same Catalog example, but you now want Description, Category, and Price in cells B2:D2 of Sales.
Formula (entered in B2, spills to D2):
=IFERROR(
XLOOKUP(A2, 'Catalog'!$A:$A, 'Catalog'!$B:$D),
{"Not Found","Not Found",0}
)
Why advanced:
- XLOOKUP can return an entire contiguous range (\'Catalog\'!$B:$D) at once.
- The result spills into three columns automatically—no need to copy multiple formulas.
- IFERROR intercepts #N/A and replaces missing Description and Category with “Not Found,” and Price with zero, preventing downstream errors in totals.
- The constant array inside IFERROR uses curly braces within the code block (permitted) to deliver default values.
Edge management:
- Performance remains high because XLOOKUP uses binary search on sorted data or dictionary search on unsorted data.
- Older Excel versions (pre-2019) cannot use XLOOKUP; fallback to VLOOKUP or INDEX/MATCH.
Professional tips:
- Wrap the lookup in LET to store the Catalog range as a variable, minimizing repetitive range evaluations.
- For extremely large catalogs (100 000+ rows), consider indexing the Catalog sheet on an Excel Data Model or leverage Power Query joins.
Tips and Best Practices
- Use Excel Tables for both sheets – Structured references read like English and automatically expand when new rows are added.
- Lock ranges with $ – When you plan to copy the formula down hundreds of rows, absolute references keep the lookup table fixed.
- Exact match by default – Write FALSE (or 0) explicitly; relying on approximate mode can yield silent errors.
- Trim and normalize data – Apply TRIM, CLEAN, and PROPER on both sheets to remove non-printing characters and case discrepancies.
- Add helper columns sparingly – A single VLOOKUP per row is readable; dozens of nested IFs slow calculation.
- Document your formulas – Use comments or adjacent notes to explain why col_index is 4, so colleagues can maintain the workbook.
Common Mistakes to Avoid
- Mismatched data types – If one sheet stores numbers as text and the other stores true numbers, VLOOKUP will never match. Convert using VALUE or Text-to-Columns.
- Hard-coding relative ranges – Forgetting the $ in \'Catalog\'!A:D means the range shifts as you copy the formula, causing unpredictable results. Fix with F4.
- Wrong column index – Counting columns incorrectly returns the wrong field or #REF!. Double-check by using COLUMN() or previewing the data.
- Duplicate lookup keys – VLOOKUP stops at the first match, which may not be the record you want. Clean duplicates or switch to INDEX/MATCH with MATCH’s third argument set to 0 and a helper that identifies unique keys.
- Using approximate mode unintentionally – Omitting the fourth argument defaults to TRUE in older Excel, allowing nearness matches that break financial numbers.
Each mistake can propagate flawed data across reports, leading to bad decisions. Auditing formulas regularly and using Excel’s Evaluate Formula tool can help catch issues early.
Alternative Methods
| Method | Strengths | Weaknesses | Ideal Use |
|---|---|---|---|
| VLOOKUP | Simple, legacy compatible, four arguments | Cannot look left, needs numeric col_index, stops at first match | Quick single-column fetches where lookup column is leftmost |
| INDEX + MATCH | Looks left or right, supports dynamic row and column finds, easier to audit | Slightly longer syntax, two functions to manage | Flexible models, two-way lookups, duplicate detection |
| XLOOKUP | Bi-directional, spills multiple columns, built-in error handler, optional search mode | Only in Excel 365/2019+, performance dips with entire column arrays on very old hardware | Modern workbooks, dashboards, multi-column returns |
| Power Query Merge | No formulas, GUI-based join, handles millions of rows, refreshable | Refresh required, learning curve, static output until next refresh | ETL pipelines, monthly merges, very large datasets |
When upgrading a file, migrate from VLOOKUP to XLOOKUP for cleaner syntax. If you need relational joins with more control, push data into Power Query and perform a Merge.
FAQ
When should I use this approach?
Use VLOOKUP from another sheet whenever you must reference a single attribute (price, term, category) from a master table and you need the result to update live as the source changes.
Can this work across multiple sheets?
Yes. Simply prefix the table_array with 'SheetName'! or reference a Table on any sheet. If the workbook is external, wrap the path in square brackets: '[Prices.xlsx]Catalog'!A:D.
What are the limitations?
VLOOKUP cannot return columns to the left, only the first match is returned, and approximate mode demands sorted data. Long ranges slow calculation. File links break if the source workbook location changes.
How do I handle errors?
Wrap VLOOKUP in IFERROR:
=IFERROR(VLOOKUP(A2, 'Catalog'!$A:$D, 4, FALSE), "Not Found")
For deeper diagnostics, use IFNA, ISNUMBER(SEARCH()), or alert banners via conditional formatting.
Does this work in older Excel versions?
Absolutely. Excel 2003 and later support VLOOKUP. Just watch for argument limits: earlier Excel caps at 56 arguments overall but VLOOKUP itself is unaffected.
What about performance with large datasets?
Restrict the table_array to only the used rows (e.g., $A$2:$D$50000) instead of full columns. Turn on Manual Calculation if recalculation becomes slow, or migrate to Power Query for datasets over 300 000 rows.
Conclusion
Mastering “vlookup from another sheet” unlocks a cornerstone Excel capability: connecting data sources without manual intervention. Whether you stay with classic VLOOKUP or adopt modern XLOOKUP, the underlying skill of cross-sheet data retrieval fuels accurate, up-to-date reports and dashboards. Practice the techniques, avoid the common pitfalls, and explore related tools like INDEX/MATCH and Power Query to advance your analytics toolkit. With these skills, you can spend less time hunting for data and more time acting on insights.
Related Articles
How to Show the 10 Most Common Text Values in Excel
Learn multiple Excel methods to list the 10 most frequent text values—complete with step-by-step examples, business use cases, and expert tips.
How to Abbreviate Names Or Words in Excel
Learn multiple Excel methods to abbreviate names or words with step-by-step examples and practical applications.
How to Abbreviate State Names in Excel
Learn multiple Excel methods to abbreviate state names with step-by-step examples, professional tips, and real-world applications.