Съдържание
В този урок ще разгледаме как да използваме 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(...)), "", 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(...)), " text_if_not_found ", " text_if_found ")В нашата примерна съвкупност от данни, да предположим, че желаете да разберете кои ученици не са издържали даден тест и кои не са. За да постигнете това, използвайте вече познатата формула ISERROR VLOOKUP за логическия тест IF и ѝ кажете да изведе "No", ако стойността не е намерена (ISERROR VLOOKUP връща TRUE), "Yes", ако е намерена (ISERROR VLOOKUP връща FALSE):
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "Не", "Да")
ISERROR VLOOKUP алтернативи
Комбинацията IF ISERROR е най-старата доказана във времето техника за Vlookup без грешки в Excel. С течение на времето се развиха нови функции, които предоставят по-лесни начини за изпълнение на същата задача. По-долу ще обсъдим други възможни решения и кога е най-добре да се прилага всяко от тях.
ГРЕШКА ПРИ ПРЕТЪРСВАНЕ
Наличен в 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 би върнал "No" в този случай, което само би замъглило проблема и би довело до абсолютно погрешен резултат.
Кога да използвате:
Тази формула работи чудесно в случаите, когато искате да покажете някакъв текст само когато не е намерена стойност за търсене и не искате да прикривате основни проблеми със самата формула VLOOKUP, например когато името на функцията е грешно въведено (#NAME?) или не е посочен пълният път до работната книга за търсене (#VALUE!).
За повече информация вижте функцията ISNA в 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-ти аргумент, наречен if_not_found .
Например:
=XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "Не")
Ограничение: Улавя само грешки #N/A, като игнорира други типове.
За повече информация вижте функцията XLOOKUP в Excel.
Както виждате, Excel предлага доста различни възможности за отстраняване на грешки при VLOOKUP. Надявам се, че този урок е хвърлил светлина върху това как да ги използвате ефективно. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!
Налични изтегляния
ISERROR с примери за VLOOKUP (.xlsx файл)