Using XLOOKUP between two sheets in the same workbook follows the same pattern as a single-sheet XLOOKUP, except lookup_array and return_array both reference the second sheet by name. Because the two ranges are selected independently rather than as one combined table, cross-sheet XLOOKUP formulas tend to be a little easier to read than their VLOOKUP equivalents.
This page covers the syntax, a couple of sheet-reference details worth knowing, and how Turbo Excel Lookup handles the same scenario without sheet-name syntax at all.












Both lookup_array (Products!B:B) and return_array (Products!D:D) reference the same second sheet, but they don't need to be adjacent columns or part of a single selected block the way VLOOKUP's table_array does. This makes it simple to pull a return column that sits several columns away from the lookup column, without needing to include every column in between.
- On the destination sheet, click the result cell and type
=XLOOKUP(. - Click the lookup_value cell on the current sheet, then type a comma.
- Switch to the second sheet's tab and click-drag to select only the lookup column, then type a comma.
- While still on the second sheet, select only the return column, then add the optional if_not_found text.
- Close the parenthesis and press Enter.
Turbo Excel Lookup treats a two-sheet scenario the same way it treats a two-file scenario - by importing each sheet as either the Base File or Lookup Table and matching on the columns you select. This means there's no sheet-naming syntax to get right, and the workbook's actual sheet names never need to appear inside a formula at all, which is particularly useful if sheet names change over time as the workbook evolves.
A subtle but occasionally useful XLOOKUP pattern is building the formula's structure before the second sheet has been created, by typing the intended sheet name directly rather than clicking to select it. This lets you build a template formula in advance, provided the sheet is created with the exact matching name before the formula is used - Excel won't validate the sheet name's existence until the formula actually tries to calculate.
This kind of forward-planning isn't necessary with Turbo Excel Lookup, since the app only ever operates on files and sheets that are actively loaded, so there's no equivalent of a formula silently waiting for a sheet that hasn't been created yet.
In a workbook with many two-sheet XLOOKUP formulas, it helps readability to keep the naming pattern consistent - always referencing the sheet before the column, always using the same abbreviation style for sheet names. This consistency makes it much faster to scan a column of similar formulas and spot the one that references an unexpected sheet, which is often the first sign something was copied incorrectly.
Duplicating a sheet (right-click tab > Move or Copy > Create a copy) is a common way to start a new month or period from an existing template, but any cross-sheet XLOOKUP formulas on the duplicated sheet will still reference the original sheet's name unless manually updated. Checking and updating these references immediately after duplicating a sheet avoids a new period's report silently pulling data from the wrong source.
Cross-sheet XLOOKUP formulas read more clearly than their VLOOKUP equivalents since lookup and return ranges are specified independently rather than counted within one combined table. That clarity becomes especially valuable in workbooks maintained by more than one person over time.
It's also worth periodically reviewing cross-sheet formulas in a workbook that's actively being restructured, since sheets that get merged, split, or renamed during a reorganization are the most common trigger for a previously working reference to quietly break.
Do lookup_array and return_array need to be next to each other?
No, unlike VLOOKUP's single table_array, XLOOKUP's two ranges are selected independently and don't need to be adjacent or in any particular order.
What happens if the two ranges have a different number of rows?
XLOOKUP returns a #VALUE! error if lookup_array and return_array don't match in size, since it needs a one-to-one row correspondence between them.
Can I reference a sheet that comes after the current one in the tab order?
Yes, sheet order in the workbook has no effect on whether XLOOKUP (or any formula) can reference it.
Is there a way to avoid re-selecting ranges if my sheet names change?
Using named ranges instead of direct sheet references keeps formulas stable even if a sheet is renamed, or Turbo Excel Lookup avoids the issue entirely since it re-imports data fresh from whichever sheet you choose each time.
Can I type a sheet reference for a sheet that doesn't exist yet?
Yes, Excel accepts the formula syntax immediately, but it won't calculate correctly until a sheet with that exact name actually exists in the workbook.
Does Turbo Excel Lookup require the target sheet to already exist?
Yes, since it operates on actively loaded files rather than named references, both files or sheets need to exist and be selected before running a lookup.
Why does consistent formula formatting matter across a sheet full of similar formulas?
It makes it much easier to visually scan a column of formulas and immediately spot the one that references an unexpected sheet or range, which usually indicates a copy-paste mistake.
What happens to cross-sheet formulas when I duplicate a sheet?
The duplicated sheet's formulas still reference the original sheet by name, so they need to be manually updated if the new sheet is meant to pull from a different source going forward.
Ready to stop fighting #N/A errors and match your spreadsheets visually?