19

Я использую vlookup много в Excel.

Проблема со значением #N/A когда значение поиска не найдено.

В этом случае мы часто заменяем его на 0, используя

if(isna(vlookup(what,range,column,false));0; vlookup(what,range,column;false))

которые повторяют vlookup(что, range, column, false) дважды и заставляют формулу выглядеть уродливой и глупой для меня.

У вас есть другие решения этой проблемы?

3 ответа3

30

Какая версия Excel? В Excel 2007 или более поздней версии вы можете использовать функцию IFERROR следующим образом

=IFERROR(VLOOKUP(A1,B2:E3,4,0),0)

5

Вы также можете использовать IFNA если хотите обнаружить только ошибки # N/A.

=IFNA(Formula,0)

Это отобразит 0 вместо ошибки # N/A.

1

Это на самом деле довольно мощно, и я какое-то время рыскал в Интернете, чтобы получить ответ на этот вопрос. В моем случае, однако, я не хочу заменять #N/A на 0 , но вместо этого я хочу использовать альтернативную информацию. В моем случае, если VLOOKUP ничего не находит, я хочу использовать содержимое другой ячейки. (Я использую Excel 2010, но это не должно иметь значения) Предположим, что моя формула в ячейке E3 на Sheet1 , а данные, которые я хочу получить, находятся где-то на Sheet2 . Если на Sheet2 нет данных, я хочу, чтобы моя ячейка использовала данные из Sheet1 .

=IFERROR(VLOOKUP(A3,Sheet2!B2:E3,4,FALSE),Sheet1!D3)

Оригинальному ответчику, СПАСИБО. Ты сделал мою жизнь немного легче сегодня вечером. Я надеюсь, что мое бессмысленное расширение вашего ответа кому-то тоже поможет!

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