首页 > 解决方案 > 如何在 ISNA 中使用 IF 以避免在 VLOOKUP 中出现 #N/A?

问题描述

我有一个包含 20 张纸的 Excel 工作簿。每张纸中 D 列的值是空白或序列号,另外还有一个标题(D2)。我想在每张表中显示上一张表的 D 中的最后一个序列号。我使用 VLOOKUP 函数查找前每张表中 D 列中的最后一个序列号。

如果前一张表的 D 列不为空,则此公式可以正常工作。但是如果它是空白的,它会再次显示#N/A,这是不可取的。

=IF(ISNA(VLOOKUP(9.99999999999999E+307,Sheet4!D:D,1))=TRUE,VLOOKUP(9.99999999999999E+307,Sheet3!D:D,1),IF(ISNA(VLOOKUP(9.99999999999999E+307,Sheet3!D:D,1))=TRUE,VLOOKUP(9.99999999999999E+307,Sheet2!D:D,1),IF(ISNA(VLOOKUP(9.99999999999999E+307,Sheet2!D:D,1))=TRUE,VLOOKUP(9.99999999999999E+307,Sheet1!D:D,1),0)))

如果表4的D列为空,则公式需要检查表3的列是否为空,依此类推。上述公式已输入到表 5 中。

标签: excelexcel-formula

解决方案


公式存在问题,因为您检查第一个单元格并提供结果而不知道结果是否也是错误的。您可以利用公式 IFERROR() 并执行以下操作:

=IF(ISERROR(VLOOKUP(9.99999999999999E+307,Sheet4!D:D,1),
IFERROR(VLOOKUP(9.99999999999999E+307,Sheet3!D:D,1),
IFERROR(VLOOKUP(9.99999999999999E+307,Sheet3!D:D,1),
IFERROR(VLOOKUP(9.99999999999999E+307,Sheet2!D:D,1),
IFERROR(VLOOKUP(9.99999999999999E+307,Sheet2!D:D,1),
IFERROR(VLOOKUP(9.99999999999999E+307,Sheet1!D:D,1),0))))),0)

推荐阅读