O ISERROR do Excel pode ser usado em cascata?

1

Aqui está a minha fórmula original

=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)),"✔"),"✓"))

Que colocará um X se o valor não for encontrado, o primeiro tipo de marca de seleção se o critério corresponder e o outro tipo se for encontrado, mas o critério não corresponder.

Aprendi hoje que o ISERROR reduz a estrutura ISNA que eu construí removendo a pesquisa redundante. Como posso usar isso (ou algo mais) para encurtar essa fórmula?

Stephen
fonte

Respostas:

3

Se você estiver usando o Excel 2007 ou posterior, use

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

Se estiver usando o Excel 2003 ou anterior, use

=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,"✔","✓"))
Chris Neilsen
fonte
Eu não tinha pensado em colocar o IF dentro do IFERROR, obrigado!
Stephen