2013-08-03 5 views
-1

Я пытаюсь настроить электронную таблицу, где у меня есть люди в здании, где они работают, на каком этаже они работают и на каком этаже они живут. Я вручную набрал, где они работают, и я также набрал, какой магазин был на каком этаже. Поэтому я использовал функцию VLOOKUP, чтобы вернуть номер пола, над которым они работают.VLOOKUP, если условие выполнено

=VLOOKUP(E3,$H$3:$I$62,2,)

Но у меня есть некоторые люди, которые являются безработными, поэтому он ищет критерии, но у меня нет никаких данных возвращаемого набора для безработных. Я полагаю, я всегда мог бы добавить его, но я бы предпочел просто вернуть формулу значение -, если человек не работает.

ответ

1

Я полагаю, что VLOOKUP для безработных людей ничего не находит. В этом случае он возвращает #N/A. Затем вы можете использовать тест для значения #N/A. После формулы следует сделать это:

=IF(ISNA(VLOOKUP(E3,$H$3:$I$62,2,));"-";VLOOKUP(E3,$H$3:$I$62,2,)) 

формула возвращает "-", когда ВПР ничего не находит.

+0

спасибо! это сработало отлично! В моей версии Excel мне пришлось изменить ваши ';" - ";' на '," - ",', но кроме этого, он работал безупречно! Еще раз спасибо! – Tibneo

1

Я бы рекомендовал использовать функцию = IFERROR вместо = ISNA по двум причинам. Причина в том, что формула становится короче и ее легче понять, но вторая, более важная причина в том, что IFERROR более общий. Если по какой-либо другой причине функция не срабатывает, функция IFERROR также будет охватывать случаи, когда результат равен #VALUE! также как # N/A. Функция будет выглядеть следующим образом:

=IFERROR(VLOOKUP(E3,$H$3:$I$62,2,); "-") 

Что делает эта функция является то, что до тех пор, пока функция ВПР правильно, то он вернет это значение. Если функция возвращает значение #VALUE! или # N/A он вернет «-»

+2

Хотя я думаю, что ваше предложение в порядке, многие утверждают, что ваша вторая причина - именно то, почему вы не используете 'IFERROR'. См. Эту статью [Daily Dose post] (http://dailydoseofexcel.com/archives/2012/04/18/is-iferror-bad/) для интересного обсуждения. –

+1

Это правда, и я согласен с тем, что должна сказать Daily Dose. Оптимальная функция в этом случае будет использовать то, что он предлагает, вложенный iferror (isna (и т. Д., Я думаю, хотя это зависит от вашей цели). Если вы хотите отображать «не применимо», вы все равно можете использовать catch, так как пользовательская сторона будет чище, но я согласен с тем, что общее решение для всех решений не является оптимальным. – MagneTism

Смежные вопросы