Не працює таблиця Excel VLOOKUP - виправлення помилок #N/A та #VALUE

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

Зміст

Ваш VLOOKUP витягує неправильні дані або ви взагалі не можете змусити його працювати? Цей посібник показує, як можна швидко виправити поширені помилки VLOOKUP та подолати його основні обмеження.

У кількох попередніх статтях ми розглядали різні аспекти роботи з функцією СРЗНАЧЕННЯ в Excel. Якщо ви уважно стежили за нами, то вже повинні бути експертом в цій області :)

Однак, недарма багато фахівців з Excel вважають ВПРАВИЛА однією з найскладніших функцій 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, де масиви є нативними, це також працює як звичайна формула).

    Порада: швидкою альтернативою є запуск інструменту "Обрізати пробіли", який за лічені секунди усуне зайві пробіли як в таблиці пошуку, так і в основній таблиці, роблячи ваші формули 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. не вказано повний шлях до книги пошуку

    Якщо дані беруться з іншої книги, необхідно вказати повний шлях до неї, а саме: у квадратних дужках вказати ім'я книги з розширенням і через знак оклику - ім'я аркуша. Якщо ім'я книги або ім'я аркуша, або і те, і інше містить пробіли або будь-які небуквені символи, то шлях до неї необхідно взяти в одинарні лапки.

    Пропонуємо вашій увазі структуру table_array аргумент до Vlookup з іншої книги:

    '[ім'я книги]ім'я аркуша'! діапазон

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

    =VLOOKUP($A$2,'[Нові ціни.xls]Лист1'!$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 ви вказуєте діапазони пошуку та повернення окремо, тому ви можете видаляти або вставляти стільки стовпців, скільки вам потрібно, не турбуючись про оновлення кожної пов'язаної формули.

    При копіюванні формули в інші комірки змінюються посилання на комірки

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

    Рішення : Завжди використовуйте абсолютні посилання (зі знаком $) для table_array наприклад, $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)

    Оскільки відносне посилання використовується для table_array змінюється в залежності від відносного положення рядка, куди копіюється формула, в нашому випадку з 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 не можна вибрати масив таблиці на іншому аркуші (тобто, коли ви виділяєте діапазон на аркуші пошуку, нічого не з'являється в table_array аргумент у формулі або у відповідному полі майстра формул), то, швидше за все, ці два аркуші відкриті в різних екземплярах Excel і не можуть взаємодіяти один з одним. Детальніше див. розділ Як визначити, які файли Excel знаходяться в якому екземплярі. Щоб виправити це, просто закрийте всі вікна Excel, а потім знову відкрийте аркуші/робочі книги в тому ж екземплярі (поведінка за замовчуванням).

    Як зробити Vlookup без помилок в Excel

    Якщо ви не хочете залякувати своїх користувачів стандартними позначеннями помилок Excel, ви можете відобразити замість них власний зручний для користувача текст або повернути порожню комірку, якщо нічого не знайдено. Це можна зробити, використовуючи функцію ВПЕРЕГЛЯД з помилкою або функцію IFERROR або IFNA.

    Ловити всі помилки

    В Excel 2007 і новіших версіях можна використовувати функцію ЕСЛИ ПОМИЛКА для перевірки формули СРЗНАЧ на наявність помилок і повернення власного тексту (або порожнього рядка), якщо будь-яка помилка виявлено.

    Наприклад:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Ой, щось пішло не так")

    В Excel 2003 і більш ранніх версіях для цієї ж мети можна використовувати формулу ЕСЛИ ОШИБКА:

    =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 і змусить ваші формули працювати так, як ви хочете.

    Як вставити таблицю в Excel - відеоурок

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