Google Sheets VLOOKUP From Another Sheet
Use VLOOKUP across Google Sheets tabs with exact matching, fixed source ranges, safe data cleanup, and clear #N/A handling.
VLOOKUP from another sheet in Google Sheets pulls a matching value from a different tab. It is useful when one tab is the working table and another tab stores reference data such as clients, products, owners, rates, categories, or deal stages.
Use this pattern when you want one source of truth for lookup data instead of copying the same values into every row manually.
The syntax
=VLOOKUP(search_key, range, index, [is_sorted])- search_key - the value to find
- range - the lookup table, including the matching column and return columns
- index - which column in the range should be returned
- [is_sorted] - use
FALSEfor exact matches in most operating sheets
Basic cross-sheet example
Say your working tab has client IDs in A2:A, and a tab named Clients has ID, client name, owner, and hourly rate in columns A through D.
To return the client owner:
=VLOOKUP(A2, Clients!A:D, 3, FALSE)To return the hourly rate:
=VLOOKUP(A2, Clients!A:D, 4, FALSE)That works well in an invoice template or CRM lead tracker when client details should be maintained in one reference tab.
Lock the lookup table before filling down so it does not shift by one row each time:
=VLOOKUP(A2, Clients!$A$2:$D$500, 3, FALSE)Sheet names with spaces
If the sheet name contains spaces, wrap it in single quotes:
=VLOOKUP(A2, 'Client List'!A:D, 3, FALSE)Without the quotes around the sheet name, Google Sheets will not read the tab reference correctly.
Avoid exact-match surprises
Use FALSE for exact matches unless the lookup table is intentionally sorted for approximate matching.
=VLOOKUP(A2, Clients!A:D, 3, FALSE)Most CRM, sales, invoice, and project workflows need exact matches. Approximate matching can return a value that looks valid but belongs to the wrong row.
WATCH OUT
Handle missing IDs without hiding data problems
Use IFNA to replace only the not-found case:
=IFNA(VLOOKUP(A2, Clients!$A$2:$D$500, 3, FALSE), "Client not found")If blank source rows should stay blank:
=IF(A2="", "", IFNA(VLOOKUP(A2, Clients!$A$2:$D$500, 3, FALSE), "Client not found"))Do not turn every failure into an empty cell. A visible warning is more useful when a missing client would affect billing.
Clean matching fields safely
For ordinary leading, trailing, or repeated spaces, clean a helper column with:
=TRIM(A2)TRIM preserves a single space between words. Do not globally delete every space: North Carolina and person or company names contain meaningful spaces. Non-breaking or non-printing characters may need a targeted SUBSTITUTE or CLEAN after you identify the character.
Common VLOOKUP problems
| Problem | Why it happens | Fix |
|---|---|---|
#N/A | No exact match was found | Check spelling, spaces, and ID values |
| Wrong value returned | Column index points to the wrong field | Count columns inside the selected range |
| Lookup breaks after columns move | VLOOKUP uses a fixed column index | Use XLOOKUP or update the index |
| Sheet name error | Tab name has spaces | Wrap the tab name in single quotes |
| Lookup works in only the first row | Relative table range shifts when filled down | Anchor the table range with dollar signs |
| Values look equal but do not match | One side is text and the other is numeric | Normalize both fields to the same data type |
Do this with AI
Cross-sheet lookups are fragile when IDs are inconsistent or the return column keeps moving.
"Pull the owner and billing rate from the Clients tab into this invoice log, use exact matches, and flag any client IDs that do not match"
Griddy can build the lookup formulas, check the reference tab, and identify missing or mismatched keys before the sheet gets used for billing or review.
See how to use XLOOKUP in Google Sheets when you need left lookups or an explicit last-to-first search.
Sources
Do this with AI
Turn the instructions into a finished spreadsheet.
Tell Griddy what you need in plain English, then inspect and keep editing the result in the browser, Excel, or Google Sheets.
Use this on real templates
Pull reference data into live operating sheets
Cross-sheet lookups are common when templates need owners, rates, client details, categories, or status information from a separate source tab.
CRM Lead Tracker
Track contacts, lead source, owner, next due date, and follow-up status in one lightweight CRM sheet. Keep hot opportunities and stale leads visible without paying for heavy sales software.
Open templateSalesSales Pipeline
Track deals by stage, owner, value, and next move in one lightweight pipeline sheet. Keep close dates, weighted forecast, and rep follow-ups visible without needing a full CRM.
Open templateFinanceInvoice Template
Professional invoice template with automatic subtotal, tax, and total calculations. Customise with your logo and send in minutes.
Open templateProject ManagementProject Tracker
Track tasks, owners, priorities, due dates, and blockers in one delivery board. Group work by stream, review progress, and keep next steps visible.
Open template