No Excel, posso fornecer um “valor padrão” no caso de minha fórmula retornar #NA?

19

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á, então pode retornar NA. Se ele retornar NA, basta colocar zero nesta célula, mas caso contrário eu quero o produto.

Parece bobo que você tenha que ter toda essa expressão lá duas vezes. Existe algum atalho onde eu posso dizer "fazer esse cálculo, e se ele retorna um valor, use isso, mas caso contrário, use algum valor padrão?

    
por Jer 08.03.2012 / 16:07

2 respostas

34

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

=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 essa nas 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)))

    
por 08.03.2012 / 17:04
4

Pode fazer mais sentido para você, se você verificou o primeiro valor de pesquisa para NA, e depois verificou 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 não pode ofender sensibilidades delicadas do programador. ; -)

    
por 08.03.2012 / 16:38