Excel 的 ISERROR 可以以级联方式使用吗?

Excel 的 ISERROR 可以以级联方式使用吗?

这是我的原始公式

=IF(ISNA(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516"),6,FALSE)),"✖",
    IF(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516"),6,FALSE)=$D3,
    IF(INDEX(INDIRECT("'"&G$2&"'!$A$3:$A$516"),
    MATCH($A3,INDIRECT("'"&G$2&"'!$B$3:$B$516"),0))>0,
    INDEX(INDIRECT("'"&G$2&"'!$A$3:$A$516"),
    MATCH($A3,INDIRECT("'"&G$2&"'!$B$3:$B$516"),0)),"✔"),"✓"))

如果未找到值,则会显示 X;如果条件匹配,则会显示第一种复选标记;如果找到了值但条件不匹配,则会显示另一种复选标记。

我今天了解到,ISERROR 通过删除冗余查找缩短了我构建的 ISNA 结构。我如何使用它(或其他方法)来缩短此公式?

答案1

如果您使用的是 Excel 2007 或更高版本,请使用

=IFERROR(IF(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516")
                             ,6,FALSE)=D3,"✔","✓"), "✖")

如果使用 Excel 2003 或更早版本,请使用

=IF(ISNA(MATCH($A3,INDIRECT("'"&G$2&"'!$B$3:$b$516"),FALSE)),"✖",
  IF(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516"),6,FALSE)=D3,"✔","✓"))

相关内容