Excel VLOOKUP не работает - исправление ошибок #N/A и #VALUE

  • Поделись Этим
Michael Brown

Оглавление

Ваш VLOOKUP извлекает неверные данные или вы вообще не можете заставить его работать? В этом руководстве показано, как можно быстро исправить распространенные ошибки VLOOKUP и преодолеть его основные ограничения.

В нескольких предыдущих статьях мы рассмотрели различные аспекты функции Excel VLOOKUP. Если вы внимательно следили за нами, то теперь вы должны быть экспертом в этой области :)

Однако недаром многие специалисты Excel считают VLOOKUP одной из самых запутанных функций Excel. Она имеет массу ограничений, которые являются источником различных проблем и ошибок.

В этой статье вы найдете простые объяснения основных причин ошибок VLOOKUP, таких как #N/A, #NAME и #VALUE, а также их решения и исправления. Мы начнем с самых очевидных причин, по которым VLOOKUP не работает, поэтому будет хорошей идеей ознакомиться с приведенными ниже шагами по устранению неполадок по порядку.

    Исправление ошибки #N/A в VLOOKUP

    В формулах VLOOKUP сообщение об ошибке #N/A (что означает "недоступно") отображается, когда Excel не может найти значение поиска. Это может произойти по нескольким причинам.

    1. значение поиска написано неправильно

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

    2. #N/A в приблизительном совпадении VLOOKUP

    Если ваша формула ищет ближайшее совпадение, ( range_lookup аргумент установлен в TRUE или опущен), ошибка #N/A может появиться в двух случаях:

    • Значение поиска меньше, чем наименьшее значение в массиве поиска.
    • Столбец поиска не отсортирован по возрастанию.

    3. #N/A в точном соответствии VLOOKUP

    Если вы ищете точное совпадение ( range_lookup аргумент установлен в FALSE), ошибка #N/A возникает, если не найдено значение, точно равное искомому. Для получения дополнительной информации смотрите раздел VLOOKUP Точное соответствие против приблизительного соответствия.

    4. столбец поиска не является крайним левым столбцом массива таблицы

    Одним из наиболее существенных ограничений Excel VLOOKUP является то, что он не может смотреть влево. Следовательно, столбец поиска всегда должен быть столбцом поиска крайняя левая колонка в массиве таблицы. На практике мы часто забываем об этом и в итоге получаем ошибки #N/A.

    Решение : Если невозможно перестроить данные так, чтобы столбец поиска был самым левым, можно использовать функции INDEX и MATCH вместе в качестве альтернативы VLOOKUP. Вот пример формулы: формула INDEX MATCH для поиска значений слева.

    5. Числа форматируются как текст

    Еще одним распространенным источником #N/A ошибок в формулах VLOOKUP являются числа, отформатированные как текст, как в основной, так и в таблице поиска.

    Обычно это происходит при импорте данных из какой-либо внешней базы данных или если вы ввели апостроф перед числом, чтобы показать ведущие нули.

    Вот наиболее очевидные индикаторы чисел, отформатированных как текст:

    Решение: Выберите все проблемные номера, нажмите на значок ошибки и выберите Преобразование в число из контекстного меню. Дополнительную информацию см. в разделе Как преобразовать текст в число в Excel.

    6. Пробелы в начале или в конце

    Это наименее очевидная причина ошибки VLOOKUP #N/A, поскольку человеческий глаз вряд ли сможет заметить эти лишние пробелы, особенно при работе с большими наборами данных, где большинство записей находится ниже прокрутки.

    Решение 1: Лишние пробелы в значении поиска

    Чтобы обеспечить правильную работу вашей формулы VLOOKUP, оберните значение поиска в функцию TRIM:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Решение 2: Лишние пробелы в колонке поиска

    Если в колонке поиска встречаются лишние пробелы, нет простого способа избежать ошибок #N/A в VLOOKUP. Вместо этого можно использовать комбинацию функций INDEX, MATCH и TRIM в качестве формулы массива:

    =INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))

    Поскольку это формула массива, не забудьте нажать Ctrl + Shift + Enter, чтобы правильно завершить ее (в Excel 365 и Excel 2021, где массивы являются родными, это также работает как обычная формула).

    Совет. Быстрая альтернатива - запуск инструмента Trim Spaces, который в считанные секунды устранит лишние пробелы как в таблице поиска, так и в основной таблице, сделав ваши формулы VLOOKUP безошибочными.

    Ошибка #VALUE! в формулах VLOOKUP

    Как правило, Microsoft Excel выводит ошибку #VALUE!, если значение, используемое в формуле, имеет неправильный тип данных. Что касается VLOOKUP, существует два распространенных источника ошибки VALUE!

    1. значение поиска превышает 255 символов

    Помните, что VLOOKUP не может искать значения, содержащие более 255 символов. Если ваши значения поиска превышают этот предел, будет выдана ошибка #VALUE!

    Решение : Вместо этого используйте формулу INDEX MATCH. В нашем случае эта формула работает идеально:

    =INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))

    2. Не указан полный путь к рабочей книге поиска

    Если вы берете данные из другой рабочей книги, вы должны указать полный путь к ней. Точнее, вы должны заключить имя рабочей книги, включая расширение, в [квадратные скобки] и указать имя листа, за которым следует восклицательный знак. Если имя рабочей книги, имя листа или оба содержат пробелы или любые неалфавитные символы, путь должен быть заключен в одинарные кавычки.

    Вот структура массив_таблиц аргумент для Vlookup из другой рабочей книги:

    '[имя рабочей книги]имя листа'!диапазон

    Реальная формула может выглядеть примерно так:

    =VLOOKUP($A$2,'[Новые цены.xls]Sheet1'!$B:$D, 3, FALSE)

    Приведенная выше формула будет искать значение A2 в столбце B Листа1 в файле Новые цены рабочей книги и вернуть совпадающее значение из столбца D.

    Если какой-либо элемент пути отсутствует, ваша формула VLOOKUP не будет работать и вернет ошибку #VALUE (если только рабочая книга поиска не открыта в данный момент).

    Для получения дополнительной информации см:

    • Как сослаться на другой лист или рабочую книгу в Excel
    • Как выполнить Vlookup из другой рабочей книги

    3. аргумент col_index_num меньше 1

    Трудно представить ситуацию, когда кто-то намеренно вводит число меньше 1, чтобы указать столбец, из которого будут возвращаться значения. Но это может произойти, если этот аргумент возвращается какой-то другой функцией, вложенной в вашу формулу VLOOKUP.

    Так, если col_index_num больше 1, ваша формула также вернет ошибку #VALUE!

    Если col_index_num больше, чем количество столбцов в массиве таблицы, VLOOKUP выдает ошибку #REF!

    Решение ошибки VLOOKUP #NAME

    Это самый простой случай - ошибка #NAME? появляется, если вы случайно неправильно написали имя функции.

    Решение очевидно - проверьте орфографию :)

    Основные причины ошибок в Excel VLOOKUP

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

    VLOOKUP не чувствителен к регистру

    Функция VLOOKUP не различает регистр букв и воспринимает строчные и прописные символы как одинаковые.

    Решение : Используйте VLOOKUP, XLOOKUP или INDEX MATCH в сочетании с функцией EXACT, которая может соответствовать регистру текста. Подробные объяснения и примеры формул вы найдете в этом учебнике: 5 способов сделать Vlookup с учетом регистра в Excel.

    Новый столбец был вставлен или удален из таблицы

    К сожалению, формулы VLOOKUP перестают работать каждый раз, когда из таблицы поиска удаляется или добавляется новый столбец. Это происходит потому, что синтаксис функции VLOOKUP требует определения номера индекса возвращаемого столбца. Когда в массив таблицы добавляется/удаляется новый столбец, очевидно, что номер индекса меняется.

    Решение : Формула INDEX MATCH снова приходит на помощь : ) С помощью INDEX MATCH вы указываете диапазоны поиска и возврата отдельно, поэтому вы можете удалять или вставлять столько столбцов, сколько хотите, не беспокоясь об обновлении каждой связанной формулы.

    Ссылки на ячейки изменяются при копировании формулы в другие ячейки

    Заголовок дает исчерпывающее объяснение проблемы, верно?

    Решение : Всегда используйте абсолютные ссылки (со знаком $) для массив_таблиц аргумент, например, $A$2:$C$100 или $A:$C. Вы можете быстро переключаться между различными типами ссылок, нажав клавишу F4.

    VLOOKUP возвращает первое найденное значение

    Как вы уже знаете, Excel VLOOKUP возвращает первое найденное значение. Однако вы можете заставить его возвращать 2-е, 3-е, 4-е или любое другое найденное значение. Существует также способ получить последнее совпадение или все найденные совпадения.

    Решения Примеры формул можно найти здесь:

    • VLOOKUP и возвращает N-ое вхождение
    • VLOOKUP несколько значений
    • Формула XLOOKUP для получения последнего совпадения

    Почему мой VLOOKUP работает для одних ячеек, но не для других?

    Когда ваша формула VLOOKUP возвращает правильные данные в одних ячейках и ошибки #N/A в других, может быть несколько возможных причин, почему это происходит.

    1. Массив таблицы не заблокирован

    Предположим, у вас есть эта формула в строке 2 (скажем, в E2), которая прекрасно работает:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    При копировании в строку 3 формула меняется на:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Поскольку относительная ссылка используется для массив_таблиц он изменяется в зависимости от относительного положения строки, в которую копируется формула, в нашем случае с A2:B10 на A3:B11. Таким образом, если совпадение находится в строке 2, оно не будет найдено!

    Решение : При использовании формулы VLOOKUP для более чем одной ячейки, всегда заблокировать массив таблицы ссылка со знаком $, например, $A$2:$B$10.

    2. Текстовые значения или типы данных не совпадают

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

    Решение : Когда VLOOKUP возвращает ошибку #N/A, хотя вы можете четко видеть значение поиска в столбце поиска, и, очевидно, оба значения написаны одинаково, первое, что вам нужно сделать, это определить первопричину проблемы - формулу или исходные данные.

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

    =E1=A4

    Где E1 - ваше значение поиска, а A4 - идентичное значение в колонке поиска.

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

    В случае числовые значения Наиболее возможная причина - числа, отформатированные как текст.

    В случае текстовые значения Скорее всего, проблема в избытке пробелов. Чтобы проверить это, узнайте общую длину двух строк с помощью функции LEN:

    =LEN(E1)

    =LEN(A4)

    Если получившиеся числа отличаются (как на скриншоте ниже), значит, вы точно определили виновника - лишние пробелы:

    Чтобы решить эту проблему, либо удалите лишние пробелы, либо используйте эту формулу INDEX MATCH TRIM в качестве обходного пути.

    Почему мой VLOOKUP извлекает неверные данные?

    Может быть еще больше причин, по которым ваш VLOOKUP возвращает неверное значение:

    1. Неправильный режим поиска Если вы хотите получить точное совпадение, обязательно установите параметр range_lookup по умолчанию - TRUE, поэтому если вы опустите этот аргумент, VLOOKUP будет считать, что вы ищете приблизительное соответствие, и будет искать ближайшее значение, которое меньше значения поиска.
    2. Столбец поиска не отсортирован Для приблизительного соответствия VLOOKUP ( range_lookup установлено в TRUE) для корректной работы, первый столбец массива таблицы должен быть отсортирован по возрастанию, от наименьшего к наибольшему.
    3. Дубликаты в колонке поиска Если столбец поиска содержит два или более дублирующихся значения, VLOOKUP вернет первое найденное совпадение, которое может оказаться не тем, которое вы ожидаете.
    4. Неправильная колонка возврата . Дважды проверьте номер индекса в 3-м аргументе :)

    VLOOKUP не работает между двумя листами

    Прежде всего, следует отметить, что общие причины ошибок #N/A, #VALUE и #REF, рассмотренные выше, могут вызвать те же проблемы при просмотре вверх с другого листа. Если это не так, обратите внимание на следующие моменты:

    1. Убедитесь в правильности внешней ссылки на другой лист или другую рабочую книгу.
    2. При выполнении Vlookup из другой рабочей книги, которая является закрытый на данный момент, убедитесь, что ваша формула содержит полный путь к закрытой рабочей книге.
    3. Если VLOOKUP невозможно выбрать массив таблицы в другом рабочем листе (т.е. когда вы выделяете диапазон в таблице поиска, ничего не появляется в окне массив_таблиц аргумент в формуле или в соответствующем поле мастера формул), то, скорее всего, два листа открыты в разных экземплярах Excel и не могут взаимодействовать друг с другом. Для получения дополнительной информации см. раздел Как определить, какие файлы Excel находятся в каком экземпляре. Чтобы исправить это, просто закройте все окна Excel, а затем снова откройте листы/рабочие книги в том же экземпляре (поведение по умолчанию).

    Как сделать Vlookup без ошибок в Excel

    Если вы не хотите пугать пользователей стандартными обозначениями ошибок Excel, вы можете вывести на экран собственный текст, удобный для пользователя, или вернуть пустую ячейку, если ничего не найдено. Это можно сделать с помощью VLOOKUP с функцией IFERROR или IFNA.

    Перехват всех ошибок

    В Excel 2007 и более поздних версиях вы можете использовать функцию IFERROR для проверки формулы VLOOKUP на наличие ошибок и возврата собственного текста (или пустой строки), если любая ошибка обнаружено.

    Например:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Упс, что-то пошло не так")

    В Excel 2003 и более ранних версиях для этой же цели можно использовать формулу IF ISERROR:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Упс, что-то пошло не так", VLOOKUP(E1, A2:B10, 2, FALSE))

    Более подробную информацию см. в разделе Использование IFERROR с VLOOKUP в Excel.

    Обработка ошибок #N/A

    Чтобы отлавливать только ошибки #N/A, игнорируя все остальные типы ошибок, используйте функцию IFNA (в Excel 2013 и выше) или формулу IF ISNA (во всех версиях).

    Например:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Упс, совпадение не найдено. Пожалуйста, попробуйте еще раз!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Упс, совпадений не найдено. Пожалуйста, попробуйте еще раз!", VLOOKUP(E1, A2:B10, 2, FALSE))

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

    Как использовать VLOOKUP в Excel - видеоурок

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.