In Excel, can I provide a "default value" in case my formula returns #NA?

For example,

Say the value of a cell is:

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

Here, I want the product of the two VLOOKUPs. But some rows may not be there, so it could return NA. If it returns NA, just put zero in this cell, but otherwise I want the product.

It seems silly that you'd have to have that whole expression in there twice. Is there some shortcut where I can say "do this calculation, and if it returns a value, use that, but otherwise use some default value?


Solution 1:

If you have Excel 2007 or later versions you can use IFERROR function to avoid repetition

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

or you can use a workaround like this in earlier versions

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

Solution 2:

It may make more sense to you if you checked the first lookup value for NA, and then checked the second, and if they're both valid then multiply them.

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

This adds more complexity, but may not offend delicate programmer sensibilities. ;-)