Здесь у меня есть таблица, красноречиво названная Table4 .

Я определил именованный диапазон на основе столбца идентификатора Table4 .

Здесь у меня есть пара идентичных выпадающих рядом с полями, которые используют VLOOKUP:

Раскрывающийся list проверяется с использованием списка на основе указанного выше именованного диапазона (PatientIds). А вот код для формул поиска:

=VLOOKUP(C9,Table4[[#All],[ID]:[Full Name]],4)

С данными выше все выглядит и работает отлично. Я могу изменить выпадающие списки, и значение рядом с ним изменяется. Вот пример:

ОДНАКО, если я попытаюсь изменить Z1 на NA , что имеет больше смысла для пользователя, все чертовски вырвется на свободу!

Вот результаты с несколькими дублированными полями:

И если я не сделаю ничего, кроме как изменить NA обратно на Z1:

1 ответ1

2
=VLOOKUP(C9,Table4[[#All],[ID]:[Full Name]],4)

Vlookup принимает четыре аргумента

Vlookup(lookup_value, table_array, col_index_number, range_lookup)

Последний аргумент может быть опущен и по умолчанию будет равен 1 или ИСТИНА. Вы пропустили четвертый аргумент, поэтому по умолчанию он равен TRUE. Это означает, что поиск вернет следующий наименьший элемент, если точное совпадение не найдено.

Чтобы это работало правильно, таблица_array должна сортироваться по возрастанию по первому столбцу. Если это не так, результаты будут повсюду, и правильный результат будет более случайным, чем задуманным.

Для получения дополнительной информации о Vlookup и обсуждения четвертого параметра см. Vlookup - зачем мне ИСТИНА или ЛОЖЬ?

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