Step-by-step guide

How to use VLOOKUP
across multiple sheets

Look up data from another sheet, a different workbook, or dynamically across multiple sheets.

EP
ExcelPro·Sep 22, 2026

Basic cross-sheet VLOOKUP

To look up from a range on a different sheet, include the sheet name followed by an exclamation mark in the table_range:

=VLOOKUP(A2, Sheet2!$A$2:$C$100, 2, 0) -- Look up A2 in column A of Sheet2, return column B =VLOOKUP(A2, 'Product List'!$A$2:$C$100, 2, 0) -- Sheet name with spaces needs single quotes around it

Cross-workbook VLOOKUP

=VLOOKUP(A2, [Products.xlsx]Sheet1!$A:$C, 2, 0) -- Look up from another open workbook -- When the other workbook is closed, the full path appears: =VLOOKUP(A2, 'C:\Files\[Products.xlsx]Sheet1'!$A:$C, 2, 0)

Dynamic sheet name with INDIRECT

Look up from different sheets based on a cell value:

=VLOOKUP(A2, INDIRECT("'"&B1&"'!$A:$C"), 2, 0) -- B1 contains the sheet name (e.g. "January", "February") -- Change B1 to look up from a different sheet automatically
⚠️ INDIRECT is volatile

INDIRECT recalculates every time anything changes in the workbook. Use it sparingly on large files.

XLOOKUP across sheets (cleaner)

=XLOOKUP(A2, Sheet2!$A$2:$A$100, Sheet2!$B$2:$B$100, "Not found") -- Cleaner syntax than VLOOKUP for cross-sheet lookups -- No column index number to worry about

Look up the same value across multiple sheets

=IFERROR(VLOOKUP(A2,Jan!$A:$C,2,0), IFERROR(VLOOKUP(A2,Feb!$A:$C,2,0), IFERROR(VLOOKUP(A2,Mar!$A:$C,2,0),"Not found"))) -- Check January first, then February, then March -- Returns first match found

Now practise it for real

Practice this formula yourself — type it in a real spreadsheet and get instant feedback. Free, no download needed.

Start the Excel Basics track free →
Keep reading