Summary

To check for empty cells in VLOOKUP results, you can combine the VLOOKUP function with the IF function. In the example shown, the formula in G5, copied down, is:

=IF(VLOOKUP(E5,data,2,0)="","",VLOOKUP(E5,data,2,0))

where "data" is the named range B5:C11.

Generic formula

=IF(VLOOKUP(A1,data,col,0)="","",VLOOKUP(A1,data,col,0))

Explanation 

In this example, the goal is create a VLOOKUP formula that will return an empty cell when the lookup result is an empty cell.

When VLOOKUP can't find a value in a lookup table, it returns the #N/A error. You can use the IFNA function or IFERROR function to trap this error. However, when the result in a lookup table is an empty cell, no error is thrown, VLOOKUP simply returns a zero.

This can cause problems when the lookup table contains actual zero values, because it suggests that blank cells in the lookup table also contain zeros, when they in fact are empty. To work around this problem you can test the result of VLOOKUP explicitly with the IF function, then return a custom result if you find an empty string.

With IF function

To test the result of VLOOKUP directly, we use the IF function like this:

=IF(VLOOKUP(E5,data,2,0)="",""

Translated: if the result from VLOOKUP is an empty string (""), return an empty string.

If the result from VLOOKUP is not an empty string, run VLOOKUP again and return a normal result:

VLOOKUP(E5,data,2,0)

In both cases, the fourth argument for VLOOKUP is set to zero to force an exact match.

Note: you can use the same general approach with the XLOOKUP function.

With LEN or ISNUMBER

Depending on your needs, you can expand the idea above to run more specific tests. For example, to test for cells that literally have zero characters (i.e. a length of zero), you can use the LEN function like this:

=IF(LEN(VLOOKUP(E5,data,2,0))=0,"",VLOOKUP(E5,data,2,0))

To test for numeric results only, you can use the ISNUMBER function, and reorder the logic like this:

=IF(ISNUMBER(VLOOKUP(E5,data,2,0)),VLOOKUP(E5,data,2,0),"")

Translated: if the result from VLOOKUP is a number, return a normal lookup. If not, return an empty string ("").

Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.