Your VLOOKUP with exact match (FALSE) is returning #N/A or incorrect results, even though the value clearly exists.
This typically happens when data looks identical but isn’t actually matching due to formatting or structure issues.
This guide fixes it step by step.
Why the Issue Happens
- Text vs number mismatch (
100vs"100") - Extra spaces or hidden characters
- Lookup value not in the first column
- Case differences (in rare exact checks)
- Leading/trailing spaces in dataset
- Duplicate values causing confusion
- Incorrect range or column index
- Using approximate match instead of exact
Step-by-Step Fixes
Step 1: Use Correct Exact Match Formula
Correct syntax:
=VLOOKUP(A2, A:B, 2, FALSE)
FALSEforces exact match- Without it, results may be wrong
Always include FALSE.
Step 2: Confirm Lookup Value Exists
Test:
=COUNTIF(A:A, A2)
0→ value not found>0→ value exists
If 0, issue is data mismatch.
Step 3: Fix Text vs Number Mismatch
Example:
- Lookup value =
100 - Table value =
"100"
These won’t match.
Fix:
=VLOOKUP(VALUE(A2), A:B, 2, FALSE)
or:
=VLOOKUP(TEXT(A2,"0"), A:B, 2, FALSE)
Step 4: Remove Extra Spaces
Hidden spaces break exact match.
Fix:
=VLOOKUP(TRIM(A2), A:B, 2, FALSE)
Clean dataset:
=ARRAYFORMULA(TRIM(A:A))
Step 5: Remove Hidden Characters
Imported data often contains invisible characters.
Fix:
=VLOOKUP(TRIM(CLEAN(A2)), A:B, 2, FALSE)
Step 6: Ensure Lookup Column is First
VLOOKUP only searches the first column.
Wrong:
=VLOOKUP(A2, B:C, 2, FALSE)
Correct:
=VLOOKUP(A2, A:C, 3, FALSE)
Step 7: Check Column Index
If index is wrong, result may fail.
Example:
=VLOOKUP(A2, A:B, 3, FALSE) ❌
Correct:
=VLOOKUP(A2, A:B, 2, FALSE)
Step 8: Handle Duplicate Values
VLOOKUP returns first match only.
If duplicates exist:
- You may get unexpected results
Alternative:
=FILTER(B:B, A:A=A2)
Returns all matches.
Step 9: Debug with EXACT
Check if values truly match:
=EXACT(A2, A3)
If FALSE → hidden mismatch exists.
Step 10: Use IFERROR for Clean Output
Instead of showing #N/A:
=IFERROR(VLOOKUP(A2, A:B, 2, FALSE), "Not Found")
Common Mistakes
- Forgetting
FALSEfor exact match - Ignoring text vs number mismatch
- Not cleaning spaces or hidden characters
- Using wrong lookup range
- Expecting VLOOKUP to search left
- Not checking if value actually exists
- Misinterpreting duplicates
Pro Tips / Better Alternatives
Use XLOOKUP (Better Alternative)
=XLOOKUP(A2, A:A, B:B)
- No column index
- Works both directions
- Cleaner and more reliable
Use INDEX + MATCH
=INDEX(B:B, MATCH(A2, A:A, 0))
More flexible and robust.
Use FILTER for Multiple Matches
=FILTER(B:B, A:A=A2)
Returns all results instead of just one.
Clean Data Before Lookup
Use:
=TRIM()
=CLEAN()
=VALUE()
Clean data = accurate matches.
Avoid Full Column References in Large Sheets
Instead of:
=VLOOKUP(A2, A:B, 2, FALSE)
Use:
=VLOOKUP(A2, A2:B1000, 2, FALSE)
Improves performance.
Bottom Line
If VLOOKUP exact match isn’t working, fix in this order:
- Ensure
FALSEis used - Check if value actually exists
- Fix text vs number mismatch
- Remove spaces and hidden characters
- Verify lookup column and range
- Handle duplicates if needed
Most issues come from data inconsistencies, not the formula itself.
Clean the data, and exact match will work reliably