Excel guide · 6 min read
How to VLOOKUP from another sheet in Excel
=VLOOKUP(B2,'Price List'!$F$2:$H$7,3,FALSE). The single quotes are needed when the sheet name contains spaces or punctuation, and the $ signs keep the range fixed when you fill the formula down. For another workbook, add the file name in square brackets: '[Prices.xlsx]Price List'!$F$2:$H$7.Sample data
Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Order | SKU | Qty | SKU | Product | Unit price | ||
| 2 | SO-5101 | MUG-12 | 24 | BOT-75 | Steel bottle 750ml | 11.5 | ||
| 3 | SO-5102 | TEE-M | 10 | CAP-01 | Logo cap | 7.25 | ||
| 4 | SO-5103 | CAP-01 | 15 | MUG-12 | Ceramic mug 12oz | 4.8 | ||
| 5 | SO-5104 | TOTE-2 | 40 | TEE-M | Cotton tee M | 6.9 | ||
| 6 | SO-5105 | mug-12 | 6 | TEE-L | Cotton tee L | 6.9 | ||
| 7 | SO-5106 | BOT-75 | 12 | HOOD-L | Zip hoodie L | 18 |
Download this sheet as an Excel practice file (.xlsx)
The formula, step by step
You have orders on one sheet and a price list on a sheet called Price List, with SKUs in column F, product names in G and unit prices in H. On the orders sheet, the price for the SKU in B2 is =VLOOKUP(B2,'Price List'!$F$2:$H$7,3,FALSE). Everything is the same as a normal VLOOKUP except the table argument, which now starts with the sheet name.
The sample below keeps the price list next to the orders so you can see the result. The answer is identical when the range points at the other sheet.
- Click the cell where the price should go and type =VLOOKUP(B2, (with the comma).
- Click the Price List sheet tab at the bottom of the window. Excel writes 'Price List'! into the formula for you.
- Select the table, F2:H7, then press F4 once to make it $F$2:$H$7.
- Type ,3,FALSE) and press Enter. Excel jumps back to the orders sheet with the result.
- Fill the formula down the column.
Result: 4.8
4.8, the unit price of MUG-12. On your file the same formula reads =VLOOKUP(B2,'Price List'!$F$2:$H$7,3,FALSE).
When the quotes are needed
A sheet name with no spaces needs no quotes: =VLOOKUP(B2,Prices!$F$2:$H$7,3,FALSE). As soon as the name has a space, a hyphen or other punctuation, or starts with a number, it must be wrapped in single quotes: 'Price List'!, 'Q4-2026'!, '2026'!. Quotes around a simple name are allowed too, so when in doubt, add them.
If the sheet name itself contains an apostrophe, type it twice inside the quotes: 'Bob''s Prices'!$F$2:$H$7. The easiest way to avoid every one of these problems is the click method above, because Excel writes the reference correctly for you.
Typing the name by hand and getting it slightly wrong (Price list vs Price Lists) does not give an error message straight away. Excel asks you to locate a file to update values from, because it thinks you mean another workbook. Press Cancel and fix the name.
Lock the range, or lower rows go missing
When you click a range on another sheet, Excel writes it as a relative reference (F2:H7). Fill the formula down and it slides: row 3 looks in F3:H8, row 7 looks in F7:H12. The rows at the top of the price list drop out of the search, and lookups for those SKUs start returning #N/A even though they are in the table.
Here BOT-75 is the first row of the price list, so row 7's copy of an unlocked formula cannot find it. Press F4 after selecting the table to add the $ signs, or point at whole columns: 'Price List'!$F:$H.
Result: #N/A
#N/A. This is what row 7 holds when the range was not locked. With $F$2:$H$7 the same lookup returns 11.5.
The XLOOKUP and INDEX/MATCH versions
XLOOKUP takes two separate ranges, and both need the sheet name: =XLOOKUP(B5,'Price List'!$F$2:$F$7,'Price List'!$H$2:$H$7,"Not in price list"). It needs no column number, so inserting a column in the price list does not shift the result, and the fourth argument gives a clear message for SKUs that are missing. XLOOKUP is in Excel 365, 2021 and 2024.
INDEX and MATCH work in every version: =INDEX('Price List'!$H$2:$H$7,MATCH(B7,'Price List'!$F$2:$F$7,0)) returns 11.5 for BOT-75. All three ignore upper and lower case, so the lowercase mug-12 in B6 still finds MUG-12.
Result: Not in price list
Not in price list. TOTE-2 has no row in the price list, so VLOOKUP would show #N/A here.
Look up from another workbook
With both files open, start the formula, switch to the other workbook (View > Switch Windows, or Ctrl+Tab), click the sheet and select the range. Excel writes the file name in square brackets: =VLOOKUP(B2,'[Prices.xlsx]Price List'!$F$2:$H$7,3,FALSE). The quotes wrap the file and sheet name together.
Close the price file and Excel expands the reference to the full path, for example 'C:\Users\Sam\Documents\[Prices.xlsx]Price List'!$F$2:$H$7. VLOOKUP and INDEX/MATCH keep working with the source closed. SUMIF, SUMIFS, COUNTIF and COUNTIFS do not: they return #VALUE! until the source file is open.
When you open the orders file later, Excel shows a security warning about links to external sources. Enable content to refresh the prices. Data > Edit Links (Workbook Links in newer versions of Excel 365) lists every linked file and lets you update, change the source or break the link.
#REF! and broken links: renamed or deleted sheets
Renaming a sheet inside Excel is safe: every formula that points at it updates to the new name automatically. Deleting the sheet is not. Formulas that pointed at it change to #REF! and the original reference is gone, so Undo (Ctrl+Z) straight away or rebuild the formula.
With a separate workbook, renaming or moving the file outside Excel breaks the link, because the formula still stores the old path. When you open the file, Excel warns that some links cannot be updated. Fix it in Data > Edit Links > Change Source and pick the file at its new name or location.
If you build the sheet name from text with INDIRECT, such as =VLOOKUP(B2,INDIRECT("'"&J1&"'!F2:H7"),3,FALSE), Excel cannot update it when the sheet is renamed, and you get #REF!. INDIRECT also returns #REF! when it points at a workbook that is closed. Use it only when the sheet name genuinely has to change from a cell.
Which method to use
- Excel 365, 2021 or 2024 and a table on another sheet: XLOOKUP with its if_not_found message.
- File shared with people on Excel 2019 or older: VLOOKUP with FALSE, or INDEX/MATCH if the return column is left of the key.
- Source in another workbook that is often closed: VLOOKUP or INDEX/MATCH, not SUMIF or COUNTIFS.
- Price list that grows: turn it into an Excel table (Ctrl+T) and use the table name, so new rows are included without editing the formula.
Common mistakes
Leaving out the quotes around a sheet name with spaces
Price List!F2:H7 is not valid. Write 'Price List'!F2:H7, or click the sheet tab and let Excel write it.
Not locking the range before filling down
Press F4 to turn F2:H7 into $F$2:$H$7, or use whole columns $F:$H. Otherwise lower rows search a shrinking table and return #N/A.
Deleting the sheet the lookup points at
Every formula turns into #REF!. Undo immediately, or move the data to a new sheet before deleting the old one and re-point the formulas.
Adding the workbook name to XLOOKUP's first range only
XLOOKUP's lookup and return ranges are separate references. Both need the sheet (and file) prefix.
FAQ
How do I VLOOKUP from another sheet in Excel?
Put the sheet name and ! before the table range: =VLOOKUP(B2,'Price List'!$F$2:$H$7,3,FALSE). The easiest way is to type =VLOOKUP(B2, and then click the other sheet's tab and select the range.
How do I VLOOKUP from another workbook?
Open both files, start the formula, switch to the other workbook and select the range. Excel writes '[File.xlsx]Sheet'!range, and adds the full folder path when the source file is closed.
Why does my VLOOKUP from another sheet show #REF!?
The sheet it pointed at was deleted, or the column number is larger than the number of columns in the table. A sheet name built with INDIRECT also gives #REF! after the sheet is renamed.
Does VLOOKUP work when the other workbook is closed?
Yes. Excel stores the full path and reads the values from the closed file. SUMIF, COUNTIF and their S versions are different: they need the source workbook open.
Can I look up across several sheets at once?
Chain lookups with IFERROR so the second sheet is searched only when the first has no match: =IFERROR(VLOOKUP(B2,East!$A:$C,3,FALSE),VLOOKUP(B2,West!$A:$C,3,FALSE)). If you have many sheets, combining them into one table is easier to maintain.
Functions used
VLOOKUPVertical lookupXLOOKUPModern lookup in any directionINDEXValue at a positionMATCHPosition of a valueIFERRORFallback when a formula errors
Related guides
- VLOOKUP not working: 7 causes and fixes
- VLOOKUP vs XLOOKUP
- How to use INDEX MATCH in Excel
- Absolute vs relative cell references in Excel
- Excel formulas cheat sheet: the 25 everyone should know
- How to look up a value to the left in Excel
- How to find the mode in Excel
Updated