VLOOKUP From Another Workbook in Excel
By ExcelReady TeamUpdated 6 min read
The short answer
To VLOOKUP from another workbook, open both files, start =VLOOKUP( in your file, then switch to the other workbook and select the table. Excel writes the reference for you, such as [Prices.xlsx]Prices!$A$2:$C$6. Finish with the column number and FALSE: =VLOOKUP(B2,[Prices.xlsx]Prices!$A$2:$C$6,3,FALSE). The formula keeps working after you close the other file.
Key takeaways
- The reference to another workbook has the file name in square brackets, then the sheet name and !: [Prices.xlsx]Prices!$A$2:$C$6.
- Select the table with the mouse and Excel writes the reference, with $ signs already added.
- When the other file is closed, Excel shows its full folder path in the formula. VLOOKUP keeps working.
- If the source file is moved or renamed, fix the link with Change Source instead of retyping formulas.
On this page+
- How a reference to another workbook looks
- How to VLOOKUP from another workbook, step by step
- What the formula looks like when the other file is closed
- File and sheet names with spaces
- How to update, change or break the link
- Why VLOOKUP from another workbook returns an error
- Should you copy the data in instead?
- Practise it
A VLOOKUP from another workbook works exactly like a normal VLOOKUP, except the table argument points at a range in a different file. The reference looks like [Prices.xlsx]Prices!$A$2:$C$6: the file name in square brackets, then the sheet name and an exclamation mark. This guide is for anyone who keeps a price list, staff list or product list in one file and needs to pull values from it into another.
How a reference to another workbook looks#
A reference to another workbook has three parts: the file name in square brackets, the sheet name, then ! and the range. For a price list saved as Prices.xlsx with a sheet called Prices:
[Prices.xlsx]Prices!$A$2:$C$6Inside VLOOKUP, it takes the place of the table:
=VLOOKUP(B2,[Prices.xlsx]Prices!$A$2:$C$6,3,FALSE)| Part | What it means |
|---|---|
B2 | The value to find, such as a product ID in your file |
[Prices.xlsx]Prices!$A$2:$C$6 | The table in the other workbook |
3 | Return the 3rd column of that table (Price) |
FALSE | Exact match only |
The rest of the formula is the same as any VLOOKUP. If the arguments are new to you, start with the guide to using VLOOKUP or the VLOOKUP function guide.
How to VLOOKUP from another workbook, step by step#
The easiest way is to let Excel write the reference by clicking. Say Orders.xlsx lists product IDs in column B, and Prices.xlsx has this table on its Prices sheet:
| A | B | C | |
|---|---|---|---|
| 1 | ID | Product | Price |
| 2 | P-101 | Notebook | 3.50 |
| 3 | P-102 | Pen pack | 4.20 |
| 4 | P-103 | Stapler | 8.90 |
| 5 | P-104 | Folder | 1.75 |
| 6 | P-105 | Tape | 2.40 |
- Open both workbooks.
- In Orders.xlsx, click C2 and type
=VLOOKUP(B2, - Switch to Prices.xlsx. On Windows, use View > Switch Windows or press Ctrl+Tab. On a Mac, pick the file from the Window menu.
- Click the Prices sheet tab and select A2:C6. Excel adds the file and sheet name for you.
- Type
,3,FALSE)and press Enter. Excel takes you back to Orders.xlsx. - Fill the formula down the column (Windows: Ctrl+D; Mac: ⌘D).
If B2 holds P-104, the result is 1.75. Notice that Excel added the $ signs itself: references you select in another workbook are absolute by default, so the table stays fixed as you fill down. For the column number, count from the first column of the selected table, not from column A of the sheet; the guide to the VLOOKUP column index number shows how.
What the formula looks like when the other file is closed#
When you close Prices.xlsx, Excel rewrites the reference with the full folder path, in single quotes:
=VLOOKUP(B2,'C:\Reports\[Prices.xlsx]Prices'!$A$2:$C$6,3,FALSE)You don't need to type this yourself. The formula still works while the file is closed: VLOOKUP reads the values that were last saved in Prices.xlsx. On a Mac, or for files in OneDrive or SharePoint, the path looks different (a Mac folder path or a web address), but it works the same way.
Not every function can do this. SUMIF and COUNTIF return #VALUE! when the workbook they point at is closed. VLOOKUP, INDEX, MATCH and XLOOKUP don't have that problem.
File and sheet names with spaces#
If the file or sheet name has spaces or special characters, the workbook-and-sheet part needs single quotes around it:
=VLOOKUP(B2,'[Price List.xlsx]Price 2026'!$A$2:$C$6,3,FALSE)The opening quote goes before the [ and the closing quote goes before the !. Excel adds them automatically when you select the range with the mouse, which is another reason to click instead of typing. The same rule applies between two sheets in one file; see VLOOKUP between two sheets.
How to update, change or break the link#
A VLOOKUP into another file creates an external link. Excel manages these links in one place: Data > Edit Links, called Data > Workbook Links in Microsoft 365.
- Update the values. When you open a file with links, Excel may show a security bar saying links are disabled. Click Enable Content if you trust the source file, and the lookups read the latest saved values.
- Change Source. If Prices.xlsx was moved or renamed, select the link and choose Change Source, then pick the new file. Every formula updates at once.
- Break Link. This replaces the lookup formulas with their current values. Use it when you send the file to someone who doesn't have the source. You can't undo it, so save a copy of the file first.
Why VLOOKUP from another workbook returns an error#
Errors in a cross-workbook lookup have the same causes as any VLOOKUP, plus a few about the link itself:
- #REF! or a "Update Values" window. Excel can't find the file or the sheet. The file was moved, renamed or the sheet tab was renamed. Fix it with Change Source.
- #N/A. The ID isn't in the first column of the table, often because of extra spaces or numbers stored as text. Check that you used FALSE; see VLOOKUP exact match.
- Old values. The source was changed but not saved, or links weren't updated when you opened the file. Save the source and update the links.
- The table didn't grow. A fixed range like
$A$2:$C$6doesn't include rows added later. Select a larger range or whole columns ($A:$C), or make the source an Excel table. - #VALUE! from other functions. If a SUMIF or COUNTIF next to your lookup points at the closed file, open the source file to fix it.
Should you copy the data in instead?#
If the source rarely changes, copying it in is often simpler than a link. Right-click the Prices sheet tab, choose Move or Copy, pick your workbook and tick Create a copy. Your VLOOKUP then points at a sheet in the same file, with no links to manage.
Keep the link when the source is updated often by someone else and you always need the latest values. In Excel 2021 and Microsoft 365, XLOOKUP works across workbooks too and doesn't need a column number. To bring back several columns at once, see VLOOKUP with multiple columns.
Practise it#
The exercise on this page practises the lookup itself on one sheet, the part you need to get right first. Then practise VLOOKUP exact match in a live spreadsheet, and practise worksheets and cross-sheet references, where you look up prices on another tab and total across monthly sheets. The same skills carry straight over to other workbooks.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Practise the lookup part on one sheet. The price list is in A1:C6. In F2, use VLOOKUP with an exact match to find the price of the product ID in E2.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Price | Price | |||||
| 2 | P-104 | ||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 | |||||||
| 9 |
Tip: Look up E2 in the table A2:C6, bring back column 3 (Price), and finish with FALSE for an exact match.
Practise this in a lesson
Frequently asked questions
Can VLOOKUP pull data from another workbook?
Yes. The table argument can point at a range in any workbook, such as [Prices.xlsx]Prices!$A$2:$C$6. The easiest way is to open both files and select the range with the mouse while you type the formula.
Does VLOOKUP work when the other workbook is closed?
Yes. Excel stores the full path to the file and uses the values saved in it. When you open your file, Excel may ask whether to update the links so it reads the latest saved values.
Why does my VLOOKUP from another workbook show #REF!?
Excel can't find the source file or the sheet, usually because it was moved, renamed or the sheet was renamed. Use Data > Edit Links (Workbook Links in Microsoft 365) and Change Source to point at the right file.
How do I write the workbook name when it has spaces?
Put single quotes around the workbook and sheet part: '[Price List.xlsx]Prices'!$A$2:$C$6. Excel adds the quotes for you when you select the range with the mouse.
How do I remove the link to the other workbook but keep the results?
Use Break Link in Data > Edit Links (Workbook Links in Microsoft 365). It replaces the lookup formulas with their current values, so they no longer update.