Dans Excel, puis-je fournir une «valeur par défaut» au cas où ma formule renvoie #NA?

23

Par exemple,

Supposons que la valeur d'une cellule soit:

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

Ici, je veux le produit des deux RECHERCHEV. Mais certaines lignes peuvent ne pas être là, donc cela pourrait retourner NA. S'il renvoie NA, mettez simplement zéro dans cette cellule, mais sinon je veux le produit.

Il semble stupide que vous deviez avoir cette expression entière deux fois. Y a-t-il un raccourci où je peux dire "faites ce calcul, et s'il renvoie une valeur, utilisez-le, mais sinon utilisez une valeur par défaut?

Jer
la source
Je ne sais pas comment le faire correctement mais jetez un oeil ici mrexcel.com/td0110.html Le dernier exemple devrait aider
chmod
Votre formule est parfaite, je ne sais pas quel raccourci vous voulez. Vous pouvez définir une fonction définie par l'utilisateur, mais cela la rendra plus courte et non plus impliquée.
Raystafarian

Réponses:

38

Si vous avez Excel 2007 ou des versions ultérieures, vous pouvez utiliser la fonction IFERROR pour éviter la répétition

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

ou vous pouvez utiliser une solution de contournement comme celle-ci dans les versions antérieures

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

barry houdini
la source
Ce premier exemple est exactement ce que je recherche. Merci!
Jer
5

Cela peut être plus logique pour vous si vous avez vérifié la première valeur de recherche pour NA, puis vérifié la seconde, et si elles sont toutes les deux valides, multipliez-les.

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

Cela ajoute plus de complexité, mais ne peut pas offenser les sensibilités délicates du programmeur. ;-)

Nathan DeWitt
la source