21

Например,

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

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, просто поставьте ноль в этой ячейке, но в противном случае я хочу получить продукт.

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

2 ответа2

36

Если у вас 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)))

4

Это может иметь больше смысла для вас, если вы проверили первое значение поиска для 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))

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .