当您使用VLOOKUP从数据表中返回值时,该函数不会在返回的空白和零值之间进行区分。如果源值为零,则VLOOKUP返回0。同样,如果源为空,则VLOOKUP仍返回值0。出于某些目的,这可能不行,您需要知道要查找的单元格是空白还是空白。如果它确实包含0。

可以采用许多不同的解决方案。一种解决方案依赖于以下事实:即使VLOOKUP返回0,它也将正确报告源单元的长度。因此,如果在返回的值上使用LEN函数,则如果源单元格为空,则LEN函数将返回0,但是如果源单元格包含0,则LEN返回1(0值的长度为1个字符)。这意味着您可以使用以下公式代替标准的VLOOKUP:

=IF(LEN(VLOOKUP(B1,D:E,2,0))=0,"",VLOOKUP(B1,D:E,2,0))

在这种情况下,如果VLOOKUP返回的长度为0,则Excel实际上不会进行查找-它将强制返回空白。仅当长度不为0时,才执行实际的VLOOKUP。

在同一概念上还有其他变体,每个变体测试所引用数据的不同特征,然后决定是否实际查找该数据。例如,此变体直接测试以查看源是否为空:

=IF(VLOOKUP(B1,D:E,2)="","",VLOOKUP(B1,D:E,2))

还可以修改公式以检查源单元格是否存在多种情况。例如,如果源为空白或源中包含#N / A错误,则此变体将返回空白:

=IF(ISNA(VLOOKUP(B1,D:E,2,0))+(VLOOKUP(B1,D:E,2,0)="")

,"",VLOOKUP(B1,D:E,2,0))

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3075)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本:

链接:/ excelribbon-Returning_Blanks_with_VLOOKUP [使用VLOOKUP返回空格]。