Excel IFERROR & VLOOKUP - пастка #N/A та інші помилки

  • Поділитися Цим
Michael Brown

У цьому уроці ми розглянемо, як використовувати функції IFERROR і VLOOKUP разом для відстеження та обробки різних помилок. Крім того, ви дізнаєтеся, як створювати послідовні vlookup в Excel, вкладаючи кілька функцій IFERROR одна в іншу.

ФОРМУЛА і ПОИСК - ці дві функції можуть бути досить складними для розуміння окремо, не кажучи вже про їх поєднання. У цій статті ви знайдете кілька простих прикладів, які стосуються найпоширеніших застосувань і наочно ілюструють логіку формул.

Якщо ви не маєте великого досвіду роботи з функціями IFERROR та VLOOKUP, можливо, буде корисно спочатку переглянути їх основи, перейшовши за наведеними вище посиланнями.

    Формула IFERROR VLOOKUP для обробки #N/A та інших помилок

    Коли Excel Vlookup не може знайти шукане значення, він видає помилку #N/A, як показано нижче:

    Залежно від потреб вашого бізнесу, ви можете замаскувати помилку власним текстом, нулем або порожньою коміркою.

    Приклад 1. IFERROR з формулою VLOOKUP для заміни помилок власним текстом

    Якщо ви хочете замінити стандартне позначення помилки своїм власним текстом, оберніть формулу VLOOKUP в IFERROR, і введіть будь-який текст, який ви хочете в 2-му аргументі ( значення_якщо_помилка ), наприклад, "Не знайдено":

    IFERROR(VLOOKUP( ... ), "Не знайдено")

    При значенні пошуку в B2 в Головній таблиці та діапазоні пошуку A2:B4 в Таблиці пошуку формула набуває наступного вигляду:

    =IFERROR(VLOOKUP(B2,'Таблиця пошуку'!$A$2:$B$5, 2, FALSE), "Не знайдено")

    Скріншот нижче показує нашу формулу Excel IFERROR VLOOKUP в дії:

    Результат виглядає набагато зрозумілішим і набагато менш залякуючим, чи не так?

    Аналогічним чином можна використовувати INDEX MATCH разом з IFERROR:

    =IFERROR(INDEX('Таблиця пошуку'!$B$2:$B$5,MATCH(B2,'Таблиця пошуку'!$A$2:$A$5,0)), "Не знайдено")

    Формула СООТВЕТСТВИЕ ИНДЕКСА ПОМИЛКИ особливо корисна, коли потрібно витягти значення зі стовпця, що лежить ліворуч від стовпця пошуку (лівий пошук), і повернути власний текст, коли нічого не знайдено.

    Приклад 2. IFERROR з VLOOKUP для повернення пустого поля або 0, якщо нічого не знайдено

    Якщо ви не хочете нічого показувати, коли шукане значення не знайдено, вкажіть, щоб IFERROR виводив повідомлення порожній рядок (""):

    IFERROR(VLOOKUP( ... ),"")

    У нашому прикладі формула виглядає наступним чином:

    =IFERROR(VLOOKUP(B2,'Таблиця пошуку'!$A$2:$B$5, 2, FALSE), "")

    Як бачите, він нічого не повертає, якщо шуканого значення немає в списку пошуку.

    Якщо ви хочете замінити помилку на нульове значення в останньому аргументі поставити 0:

    =IFERROR(VLOOKUP(B2,'Таблиця пошуку'!$A$2:$B$5, 2, FALSE), 0)

    Застереження! Функція Excel IFERROR ловить всі види помилок, а не тільки #N/A. Добре це чи погано? Все залежить від вашої мети. Якщо ви хочете замаскувати всі можливі помилки, то IFERROR Vlookup - це те, що вам потрібно. Але в багатьох ситуаціях це може бути нерозумним прийомом.

    Наприклад, якщо ви створили іменований діапазон для даних вашої таблиці і неправильно написали це ім'я у формулі Vlookup, IFERROR перехопить помилку #NAME? і замінить його на "Не знайдено" або будь-який інший текст, який ви ввели. В результаті ви можете ніколи не дізнатися, що ваша формула видає неправильні результати, якщо ви самі не помітите помилку. У такому випадку більш розумним підходом було б відловлювання тільки помилок #N/A.Для цього використовуйте формулу IFNA VLOOKUP в Excel 2013 і вище, IF ISNA VLOOKUP в усіх версіях Excel.

    Суть в тому, що будьте дуже уважні при виборі компаньйона для вашої формули VLOOKUP :)

    Вкладіть IFERROR в VLOOKUP, щоб завжди щось знайти

    Уявіть собі таку ситуацію: ви шукаєте певне значення в списку і не знаходите його. Які варіанти у вас є? Або отримати помилку N/A, або вивести власне повідомлення. Насправді, є третій варіант - якщо ваш основний vlookup спіткнувся, то пошукайте щось інше, що точно там є!

    Розвиваючи наш приклад далі, давайте створимо для наших користувачів якусь інформаційну панель, яка буде показувати їм внутрішній номер конкретного офісу. Щось на кшталт цього:

    Отже, як витягти розширення з колонки B на основі номера офісу в D2? За допомогою цієї звичайної формули Vlookup:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    І це буде добре працювати до тих пір, поки ваші користувачі вводять дійсний номер в D2. Але що робити, якщо користувач ввів якийсь неіснуючий номер? В такому випадку нехай дзвонить в центральний офіс! Для цього ви вбудовуєте вищевказану формулу в значення аргумент IFERROR, і помістіть ще один Vlookup в значення_якщо_помилка аргумент.

    Повна формула трохи довга, але вона працює бездоганно:

    =IFERROR(VLOOKUP("офіс"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("центральний офіс",$A$2:$B$7,2,FALSE))

    Якщо номер офісу знайдено, користувач отримує відповідний внутрішній номер:

    Якщо номер офісу не знайдено, відображається внутрішній номер центрального офісу:

    Щоб зробити формулу трохи компактнішою, можна використати інший підхід:

    По-перше, перевірте, чи присутній номер в D2 в колонці пошуку (зверніть увагу, що ми задали col_index_num до 1, щоб формула шукала і повертала значення зі стовпця A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Якщо вказаний номер офісу не знайдено, то шукаємо рядок "центральний офіс", який точно є в списку пошуку. Для цього обертаємо перший VLOOKUP в IFERROR і вкладаємо всю цю комбінацію всередину іншої функції VLOOKUP:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "центральний офіс"),$A$2:$B$7,2)

    Ну, трохи інша формула, той самий результат:

    Але навіщо шукати "центральний офіс", запитаєте ви? Чому б не вказати внутрішній номер безпосередньо в IFERROR? Тому що внутрішній номер може змінитися в якийсь момент в майбутньому. Якщо це станеться, вам доведеться лише один раз оновити дані у вихідній таблиці, не турбуючись про оновлення кожної з ваших формул VLOOKUP.

    Як робити послідовні СЛОВА в Excel

    У ситуаціях, коли потрібно виконати так звану послідовний або прикутий Vlookups в Excel залежно від того, чи був попередній пошук успішним чи невдалим, вкладають дві або більше функцій IFERROR для запуску Vlookups один за одним:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Не знайдено")))

    Формула працює за наступною логікою:

    Якщо перший VLOOKUP нічого не знаходить, перший IFERROR ловить помилку і запускає інший VLOOKUP. Якщо другий VLOOKUP зазнає невдачі, другий IFERROR ловить помилку і запускає третій VLOOKUP і т.д. Якщо всі VLOOKUP спотикаються, останній IFERROR повертає ваше повідомлення.

    Ця вкладена формула IFERROR особливо корисна, коли вам потрібно виконати Vlookup через кілька аркушів як показано у наведеному нижче прикладі.

    Припустимо, у вас є три списки однорідних даних на трьох різних аркушах (в даному прикладі це номери офісів), і ви хочете отримати розширення для певного номера.

    Якщо припустити, що шукане значення знаходиться в комірці A2 на поточному аркуші, а діапазон пошуку - A2:B5 на 3 різних аркушах (Північ, Південь і Захід), то наступна формула працює чудово:

    =IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE), "Not found")))

    Отже, наша формула "ланцюгових Vlookups" шукає на трьох різних аркушах у тому порядку, в якому ми вклали їх у формулу, і виводить перший знайдений збіг:

    Ось так можна використовувати IFERROR з VLOOKUP в Excel. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!

    Доступні для завантаження

    Приклади формул Excel IFERROR VLOOKUP

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.