Excel VLOOKUP Not Working? Fix #N/A, #REF & Wrong Results

Your VLOOKUP formula is returning #N/A, #REF, or incorrect values.
This isn’t random, VLOOKUP fails when your data structure, lookup logic, or formula setup is slightly off.

Why the Issue Happens

  • Lookup value not found in the first column of the table array
  • Using approximate match (TRUE) instead of exact match (FALSE)
  • Data type mismatch (numbers stored as text)
  • Extra spaces or hidden characters
  • Incorrect column index number
  • Table range not locked while copying formulas
  • Duplicate values causing unexpected results
  • VLOOKUP limitation: cannot look left

Step-by-Step Fixes

Step 1: Use the Correct VLOOKUP Structure

Always start with a clean formula:

=VLOOKUP(A2, $E$2:$H$100, 2, FALSE)
  • A2 → lookup value
  • $E$2:$H$100 → table array (locked)
  • 2 → column index
  • FALSE → exact match (critical)

Step 2: Fix #N/A Errors

#N/A means Excel cannot find the value.

Check if the value exists:

=COUNTIF(E:E, A2)

If result = 0 → value doesn’t exist.

Fix data type mismatch:

=VALUE(A2)

or

=TEXT(A2,"0")

Remove spaces:

=TRIM(A2)

Robust version:

=VLOOKUP(TRIM(A2), $E$2:$H$100, 2, FALSE)

Step 3: Fix #REF Errors

#REF happens when column index exceeds table width.

Wrong:

=VLOOKUP(A2, E2:G100, 5, FALSE)

Fix:

=VLOOKUP(A2, E2:G100, 3, FALSE)

Also check if columns were deleted from the lookup table.

Step 4: Fix Wrong Results

Most common cause: approximate match.

Wrong:

=VLOOKUP(A2, E2:H100, 2, TRUE)

Fix:

=VLOOKUP(A2, E2:H100, 2, FALSE)

Always use FALSE in financial models and professional work.

Step 5: Lock Table Range

If results change when dragging formulas:

Wrong:

=VLOOKUP(A2, E2:H100, 2, FALSE)

Fix:

=VLOOKUP(A2, $E$2:$H$100, 2, FALSE)

Use F4 to lock references.

Step 6: Fix Left Lookup Limitation

VLOOKUP only works left to right.

If lookup column is on the right, it will fail.

Fix using INDEX + MATCH:

=INDEX(A:A, MATCH(A2, B:B, 0))

Step 7: Handle Duplicate Values

VLOOKUP returns the first match only.

For multiple conditions:

=INDEX(H:H, MATCH(1, (E:E=A2)*(F:F=B2), 0))

(Use Ctrl+Shift+Enter in older Excel)

Step 8: Handle Errors Properly

Instead of showing errors:

=IFERROR(VLOOKUP(A2, $E$2:$H$100, 2, FALSE), "Not Found")

Common Mistakes

  • Using TRUE instead of FALSE
  • Not locking table range
  • Ignoring text vs number mismatch
  • Wrong column index after modifying table
  • Expecting VLOOKUP to work both directions
  • Not checking for duplicates

Pro Tips

Use XLOOKUP if available:

=XLOOKUP(A2, E:E, H:H, "Not Found")

Use structured tables for dynamic ranges

Avoid full-column references in large datasets

Use helper columns for complex lookups

Bottom Line

Fix VLOOKUP issues in this order:

  1. Check match type (use FALSE)
  2. Verify lookup value exists
  3. Fix data type and spaces
  4. Validate column index
  5. Lock table range

Most VLOOKUP errors are not formula problems—they are data structure problems. Clean data = correct results.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top