Могу ли я указать в Excel значение «по умолчанию», если моя формула возвращает #NA?

23

Например,

Скажем, значение ячейки:

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

Здесь я хочу продукт двух VLOOKUP. Но некоторые строки могут отсутствовать, поэтому он может вернуть NA. Если он возвращает NA, просто поместите ноль в эту ячейку, но в противном случае я хочу продукт.

Кажется глупым, что вам придется иметь это целое выражение там дважды. Есть ли какой-нибудь ярлык, где я могу сказать «сделать этот расчет, и если он возвращает значение, используйте его, но в противном случае используйте какое-то значение по умолчанию?

Иер
источник
Я не уверен, как это сделать правильно, но посмотрите здесь mrexcel.com/td0110.html Последний пример должен помочь
chmod
Ваша формула идеальна, я не уверен, какой ярлык вы хотите. Вы можете определить пользовательскую функцию, но это сделает ее короче, а не более сложной.
Raystafarian

Ответы:

38

Если у вас Excel 2007 или более поздние версии, вы можете использовать функцию IFERROR, чтобы избежать повторения

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

или вы можете использовать обходной путь, как это в более ранних версиях

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

Барри Гудини
источник
Этот первый пример именно то, что я ищу. Благодарность!
Джер
5

Это может иметь больше смысла для вас, если вы проверили первое значение поиска для NA, а затем проверили второе, и если они оба действительны, умножьте их.

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

Это добавляет больше сложности, но не может обидеть тонкие чувства программиста. ;-)

Натан Девитт
источник