当您使用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,则公式将返回一个空白。仅当长度不为0时,才返回VLOOKUP的结果。

在同一概念上还有其他变体,每个变体测试所引用数据的不同特征,然后决定是否实际查找该数据。 (您可以推测,为您的需求而开发的变化将取决于“所引用数据的不同特征。”)

例如,下面是一个变体,可以直接测试以查看源是否为空:

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

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

=IFERROR(TRIM(VLOOKUP(B1,H:H,1,FALSE)),"")

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

本技巧(12518)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

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