Оглавление
В этом уроке мы рассмотрим, как использовать ISERROR с VLOOKUP в Excel для продуктивной обработки всех видов ошибок.
VLOOKUP - одна из самых запутанных функций Excel, с которой связано множество проблем. В какой бы таблице вы ни искали, ошибки #N/A - обычное явление, а #NAME и #VALUE также появляются время от времени. Использование VLOOKUP с ISERROR поможет вам отловить все возможные ошибки и обработать их наиболее подходящим для вашей ситуации способом.
Почему VLOOKUP выдает ошибку?
Наиболее распространенной ошибкой в формулах VLOOKUP является #N/A происходит, когда искомое значение не найдено. Это может произойти по разным причинам:
- Значение поиска не существует в массиве поиска.
- Значение поиска написано неправильно.
- В значении поиска или столбце поиска имеются ведущие или последующие пробелы.
- Столбец поиска не является крайним левым столбцом массива таблицы.
Кроме того, вы можете столкнуться с #VALUE! ошибка, например, когда значение поиска содержит более 255 символов. Если в имени функции допущена орфографическая ошибка, то в поле "Ошибка" будет выведена надпись #NAME? появится ошибка.
Для получения полной информации см. нашу предыдущую статью "Почему не работает Excel VLOOKUP".
Формула IF ISERROR VLOOKUP для замены ошибок пользовательским текстом
Чтобы замаскировать все возможные ошибки, которые может вызвать VLOOKUP, вы можете поместить его внутрь формулы IF ISERROR следующим образом:
IF(ISERROR(VLOOKUP(...)), " text_if_error ", VLOOKUP(...))В качестве примера приведем названия предметов, по которым студенты группы А провалили тесты:
=VLOOKUP(A3, $D$3:$E$9, 2, FALSE)
В результате вы получаете кучу ошибок #N/A, что может создать впечатление, что формула повреждена.
На самом деле эти ошибки просто указывают на то, что некоторые значения поиска (A3:A14) не найдены в списке поиска (D3:D9). Чтобы четко передать эту мысль, вложите свою формулу VLOOKUP в конструкцию IF ISERROR:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Нет", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Это позволит отловить ошибки и вернуть пользовательское текстовое сообщение:
Советы и примечания:
- Главное преимущество этой формулы в том, что она прекрасно работает в все версии Excel 2000 по Excel 365. В современных версиях доступны более простые и компактные альтернативы.
- Функция ISERROR перехватывает абсолютно все ошибки Например, #N/A, #NAME, #VALUE и т.д. Если вы хотите вывести пользовательское сообщение только в том случае, когда значение поиска не найдено (ошибка #N/A), используйте функцию IF ISNA VLOOKUP (во всех версиях) или IFNA VLOOKUP (в Excel 2013 и более поздних версиях).
ISERROR VLOOKUP для возврата пустой ячейки в случае ошибки
Чтобы при возникновении ошибки ячейка была пустой, сделайте так, чтобы ваша формула возвращала пустую строку ("") вместо пользовательского текста:
В нашем случае формула принимает такой вид:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Результат будет именно таким, как ожидалось - пустая ячейка, если имя ученика не найдено в таблице поиска.
Совет. Аналогичным образом вы можете заменить ошибки VLOOKUP нулями, тире или любыми другими символами. Просто используйте нужный символ вместо пустой строки.
IF ISERROR VLOOKUP Да/Нет формула
В некоторых ситуациях вы можете искать что-то, но вместо того, чтобы искать совпадения, вы просто хотите вернуть следующее Да (или другой текст, если значение поиска найдено) и Нет (если искомое значение не найдено). Чтобы сделать это, вы можете использовать эту общую формулу:
IF(ISERROR(VLOOKUP(...)), " текст_если_не_найдено ", " текст_если_найдено ")В нашем примере набора данных, предположим, вы хотите узнать, кто из студентов провалил тест, а кто нет. Чтобы добиться этого, используйте уже знакомую формулу ISERROR VLOOKUP для логического теста IF и сообщите ей, чтобы она выводила "Нет", если значение не найдено (ISERROR VLOOKUP возвращает TRUE), "Да", если найдено (ISERROR VLOOKUP возвращает FALSE):
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Нет", "Да")
Альтернативы ISERROR VLOOKUP
Комбинация IF ISERROR является старейшей проверенной временем техникой для Vlookup без ошибок в Excel. Со временем появились новые функции, обеспечивающие более простые способы выполнения той же задачи. Ниже мы обсудим другие возможные решения и то, когда каждое из них лучше всего применять.
IFERROR VLOOKUP
Доступно в Excel 2007 и выше
Начиная с версии 2007, в Excel появилась специальная функция IFERROR для проверки формулы на наличие ошибок и возврата собственного текста (или запуска альтернативной формулы) при обнаружении любой ошибки.
IFERROR(VLOOKUP(...), " text_if_error ")В реальной жизни формула выглядит следующим образом:
=IFERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "Нет")
На первый взгляд, она выглядит как более короткий аналог формулы IF ISERROR VLOOKUP. Однако есть существенное отличие:
- IFERROR VLOOKUP предполагает, что вам всегда нужен результат VLOOKUP, если он не является ошибкой.
- IF ISERROR VLOOKUP позволяет указать, что возвращать в случае ошибки, а что в случае отсутствия ошибки.
Более подробную информацию см. в разделе Использование IFERROR с VLOOKUP в Excel.
ЕСЛИ ЕСТЬ VLOOKUP
Работает в Excel 2000 и более поздних версиях
В ситуации, когда необходимо отловить только #N/A, не перехватывая другие ошибки, пригодится функция ISNA. Синтаксис такой же, как и у IF ISERROR VLOOKUP:
IF(ISNA(VLOOKUP(...)), " text_if_error ", VLOOKUP(...))Но при определенных обстоятельствах эта, казалось бы, одинаковая формула может дать разные результаты:
=IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Нет", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
На рисунке ниже ячейка A13 содержит много пробелов, из-за которых общая длина значения поиска превышает 255 символов. В результате формула выдает ошибку #VALUE!, привлекая ваше внимание к этой ячейке и предлагая разобраться в причинах. ISERROR VLOOKUP в этом случае вернет "Нет", что только затушует проблему и даст абсолютно неверный результат.
Когда использовать:
Эта формула прекрасно работает в ситуации, когда вы хотите отобразить текст только тогда, когда искомое значение не найдено, и не хотите маскировать проблемы, лежащие в основе самой формулы VLOOKUP, например, когда имя функции введено неправильно (#NAME?) или не указан полный путь к искомой рабочей книге (#VALUE!).
Для получения дополнительной информации см. функцию ИСТИНА в Excel с примерами формул.
IFNA VLOOKUP
Доступно в Excel 2013 и выше
Это современная замена комбинации IF ISNA, позволяющая проще обрабатывать ошибки #N/A.
IFNA(VLOOKUP(...), " text_if_error ")Вот сокращенный эквивалент нашей формулы IF ISNA VLOOKUP:
=IFNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "Нет")
Когда использовать:
Это идеальное решение для отлова и обработки ошибок #N/A в современных версиях Excel (2013 - 365).
Для получения подробной информации см. функцию Excel IFNA.
XLOOKUP
Поддерживается в Excel 2021 и Excel 365
Благодаря встроенной функции "если ошибка" функция XLOOKUP является самым простым способом поиска без ошибок #N/A в Excel. Просто введите удобный для вас текст в необязательный 4-й аргумент под названием если_не_найдено .
Например:
=XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "Нет")
Ограничение: Отлавливает только ошибки #N/A, игнорируя другие типы.
Для получения дополнительной информации ознакомьтесь с функцией XLOOKUP в Excel.
Как видите, Excel предоставляет довольно много различных вариантов для устранения ошибок VLOOKUP. Надеюсь, этот учебник пролил свет на то, как эффективно их использовать. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Доступные загрузки
ISERROR с примерами VLOOKUP (файл.xlsx)