In Excel, posso fornire un "valore predefinito" nel caso in cui la mia formula restituisca #NA?


23

Per esempio,

Supponiamo che il valore di una cella sia:

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))

Qui, voglio il prodotto dei due VLOOKUP. Ma alcune righe potrebbero non essere presenti, quindi potrebbe restituire NA. Se restituisce NA, basta inserire zero in questa cella, ma altrimenti voglio il prodotto.

Sembra sciocco che tu debba avere quella intera espressione lì due volte. C'è qualche scorciatoia in cui posso dire "fai questo calcolo, e se restituisce un valore, usalo, ma altrimenti usa un valore predefinito?


Non sono sicuro di come farlo correttamente, ma dai un'occhiata qui mrexcel.com/td0110.html L'ultimo esempio dovrebbe aiutare
chmod

La tua formula è perfetta, non sono sicuro di quale scorciatoia vuoi. È possibile definire una funzione definita dall'utente ma ciò la renderà più breve, non più coinvolta.
Raystafarian

Risposte:


38

Se si dispone di Excel 2007 o versioni successive, è possibile utilizzare la funzione IFERROR per evitare la ripetizione

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

oppure puoi utilizzare una soluzione alternativa come questa nelle versioni precedenti

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


Quel primo esempio è esattamente quello che sto cercando. Grazie!
Jer

5

Potrebbe avere più senso se hai verificato il primo valore di ricerca per NA, quindi hai controllato il secondo e, se sono entrambi validi, moltiplicali.

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

Ciò aggiunge più complessità, ma potrebbe non offendere la delicata sensibilità del programmatore. ;-)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.