Excel VLOOKUP From Another Workbook

If you’re filling in an order form in Excel, you can use the VLOOKUP function to find the selling price for each item in the sales order. For example, in the screen shot below, the order form is on the Orders worksheet, and a VLOOKUP formula in column D pulls the cost from a pricing table on the Prices worksheet.

Lookup Range in Another Workbook

However, you might want to keep your price list separate from the orders workbook, so the prices are easy to update. If your price list is in a different workbook, you can still use a VLOOKUP formula to pull the data, by referring to the external list. To refer to another workbook in a VLOOKUP formula, follow these steps.

Open both workbooks (this step isn’t mandatory, but makes it easier to create the link)

Create the VLOOKUP formula, and for the table_array argument, select the lookup range in the other workbook. In the screen shot below, the lookup table is in the PriceList.xlsx workbook, in a range named PriceLU.

Closing the Lookup Workbook

While the price list lookup table workbook is open, the VLOOKUP formula will show the workbook name and the referenced range address or range name. You can see the PriceLU name and workbook information in the formula bar, in the screen shot below.

If the price list lookup table workbook is closed, the VLOOKUP formula will still work, and the full file path for the price list lookup table workbook will be shown in the formula.

Watch the Video

To see the steps for referring to a VLOOKUP range in another workbook, please watch this short Excel tutorial video.

39 Responses

I have been reading your blogs for sometime and I just wanted to thank you for your tremendous contribution and acknowledge that though there are many MVPs in the field writing blogs but you are the best in your area especially with this added feature of videos as it makes lot easier to understand the whole concept. However, I would really appreciate if you can provide some material on the excel charting because as I said there many bloggers we would like Debra to teach us charting skills in her typical easy to understand style alongwith videos.

Here I tried to access above link but found the below message:Not FoundSorry, but you are looking for something that isn’t here.Thanks and kind regardsFakhar

To look up info from a different worksheet in the same excel file, approach is just the same – as a “table_array” you just select the area in different worksheet and the rest of steps is exactly the same.

Fantastic presentation – Thank you very much. Now a question: Is it possible to get the ‘found data’ to show up in the same colour text as that of the source cell, if the source cell varies in different rows in the source workbook?

i am using different file to pick a value against the reference field, and file name change is depend on field A1 in master file, so i want some adjust in Vlookup formula regarding file name means file name should automatically
change when value of A1 change.

other details,
A1 value = file name
Indirect function used but limited as required fie should open.
‘IF’ function can not be used bcoz the number of file are greater the 8.

I am using an Index function to search a second table for information. Instead of specifying the specific table in the formula, can I designate the Range, Row, and Column Values in the Index Function (below) within a cell on the same sheet that directs the formula to the required Range, Row, and Column Value on a second table? I know I can develop a “name” but I need to be able to edit which table I want to search on the fly.

@James Nikita
I assume, you mean “take me to workSHEET #2” (not workbook).
The could do this:
In your cell on worksheet #1 press Control-K.
This will open a hyperlink dialog.
In the edit field on top “text to be displayed” enter a friendly name to the jump target, e.g. “goto worksheet #2”
In the tree titled “or select a place in document:” click on “Sheet 2”.
Press OK.

May be the title of displayed will be slightly different. I use a German Excel.

Hi Jo. Would be safest to just copy the VLOOKUP table into your destination workbook. References across workbooks are a recipe for disaster – especially given that if someone changes the structure of the source workbook while the destination workbook is closed then the VLOOKUP won’t work and will return incorrect data.

You can also use MS Query to pull data from one spreadsheet to another. Are you familiar with it? It’s available via the Data tab in Excel 2010:
Data>From Other Sources>From Microsoft Query

It works Great..
Except i’m working with zip codes (I had to first convert from text to number) where the leading zero disappears.
ie.
06511 New Haven, CT becomes 6511
and it cant find 6511 in the zip code file

I’ve used vlookup opening workbooks within one excel instance and it works great. Now when I try to do a vlookup opening two separate instances of Excel with different workbooks, the function does not work. Can this be done? Please help!

Note: Two instances is when you open Excel from the start menu and open a second Excel workbook from the start menu a second time.

I get error messages if I want to use a vlookup in combination with table tools => so my syntax would include sth like this Table1[#All] etc. This works if I use it in one excel sheet, however if I want to do the vlookup to another excel sheet, it does not work. If I then change the Table1[#All] syntax to the standard A1:A65000, it works. The Table1[#All] syntax however would be dynamic and include all changes that I do in table1. So I would prefer that one. Any ideas how to solve that?

I do not get the reply when David asked “looking up info from a workbook with multiple sheets”. VLookup is always pointing from worksheets to worksheets even at different workbook. For example, what can be specified in the formula =VLOOKUP(C1,'[Database.xlsx](XXXXX)!,1) – denoted with XXXXX, if I am looking for a specific match in the entire workbook?

Hello Debra
I have a manufacturing program and a stock program both in excel 2013

The manufacturing program needs to look up some data in the stock program
every time it opens a new jobcard.

However the stock program is continually being update and rows and columns
added, hidden or deleted .
Therefore vlookup( look_for_what, look_where,return_data_from_column_X,false ) wont work
because the order of the stock table columns are continually being changed.
Is it possible to say
(Lets say i am looking for thye column call “Price”)

“use the stock table and find the column called price then return the column number
of that column as varialble priccolumn1”
then vlookup( price ,look in stocktable from column (pricecolumn1):pricecolumn1+1, return the value of pricecolumn1, false)

I have two worksheets, large stock/range lists. One worksheet has 35 items (created from stock list system) and the other is a range list.

When I do a V Look Up, some of the data shows in the column I wish to place it in, however, some cells just say #n/a. I’ve checked the data between both. Why won’t the formula paste in all of the cells?

Catherine,
When you apply a vlookup formula between two worksheets within a workbook, you must freeze the lookup range (either use $ sign or press F4 to freeze the lookup range) so that the formula remains consistent.