No Excel, posso fornecer um "valor padrão" caso minha fórmula retorne #NA?

23

Por exemplo,

Digamos que o valor de uma célula seja:

IF(ISNA(VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,someothersheet!A:D,4,FALSE)), 0, VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,someothersheet!A:D,4,FALSE))

Aqui, quero o produto dos dois VLOOKUPs. Mas algumas linhas podem não estar lá e, portanto, podem retornar NA. Se retornar NA, basta colocar zero nessa célula, caso contrário, quero o produto.

Parece bobagem que você teria que ter toda essa expressão lá duas vezes. Existe algum atalho no qual posso dizer "faça esse cálculo e, se ele retornar um valor, use-o, mas use algum valor padrão?

Jer
fonte
Eu não tenho certeza de como fazê-lo corretamente, mas dê uma olhada aqui mrexcel.com/td0110.html O último exemplo deve ajudar
chmod
Sua fórmula é perfeita, não sei ao certo qual atalho você deseja. Você pode definir uma função definida pelo usuário, mas isso a tornará mais curta, não mais envolvida.
Raystafarian

Respostas:

38

Se você possui o Excel 2007 ou versões posteriores, pode usar a função IFERROR para evitar repetições

=IFERROR(VLOOKUP(A3,somesheet!G:J,3,FALSE)*VLOOKUP(A3,someothersheet!A:D,4,FALSE),0)

ou você pode usar uma solução alternativa como esta em versões anteriores

=LOOKUP(9.9E+307,IF({1,0},0,VLOOKUP(A3,somesheet!G:J,3,FALSE)*VLOOKUP(A3,someothersheet!A:D,4,FALSE)))

barry houdini
fonte
Esse primeiro exemplo é exatamente o que estou procurando. Obrigado!
Jer
5

Pode fazer mais sentido para você se você verificou o primeiro valor de pesquisa para NA e depois o segundo, e se ambos são válidos, multiplique-os.

=IF(OR(ISNA(VLOOKUP(A3,somesheet!G:J,3,FALSE)),ISNA(VLOOKUP(A3,somesheet!A:D,4,FALSE))), 0, VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,somesheet!A:D,4,FALSE))

Isso adiciona mais complexidade, mas pode não ofender as delicadas sensibilidades do programador. ;-)

Nathan DeWitt
fonte