O ISERROR do Excel pode ser usado em cascata?

1

Aqui está 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)),"✔"),"✓"))

O qual colocará um X se o valor não for encontrado, o primeiro tipo de marca de seleção se os critérios corresponderem e o outro tipo se for encontrado, mas os critérios não corresponderem.

Eu aprendi hoje que o ISERROR encurta a estrutura ISNA que construí, removendo a pesquisa redundante. Como posso usar isso (ou alguma outra coisa) para encurtar essa fórmula?

    
por Stephen 23.09.2011 / 23:58

1 resposta

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,"✔","✓"))
    
por 24.09.2011 / 01:53