web-dev-qa-db-fra.com

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

Par exemple,

Disons que la valeur d'une cellule est:

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 VLOOKUP. Mais certaines lignes peuvent ne pas être là, donc il pourrait retourner NA. Si le résultat est NA, mettez simplement zéro dans cette cellule, mais sinon, je veux le produit.

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

22
Jer

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

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

37
barry houdini

Cela peut sembler plus logique pour vous si vous avez coché la première valeur de recherche pour NA, puis 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 davantage de complexité, mais ne peut pas offenser les sensibilités délicates des programmeurs. ;-)

5
Nathan DeWitt