Зміст
У навчальному посібнику розглядається практичне використання функції ПОМИЛКА в Excel та показано, як перевіряти різні формули на наявність помилок.
Коли ви пишете формулу, яку Excel не розуміє або не може обчислити, він звертає вашу увагу на проблему, показуючи повідомлення про помилку. Функція ISERROR може допомогти вам вловити помилки і надати альтернативу, коли помилка знайдена.
Функція ISERROR в Excel
Функція Excel ISERROR перехоплює всі види помилок, включаючи #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! і #SPILL!. Результатом є логічне значення: TRUE, якщо помилка виявлена, FALSE в іншому випадку.
Функція доступна в усіх версіях Excel 2000 - 2021 та Excel 365.
Синтаксис функції ISERROR дуже простий:
ISERROR(значення)Де значення значення комірки або формула, що перевіряється на наявність помилок.
Формула Excel ISERROR
Щоб створити формулу ISERROR в найпростішому вигляді, вкажіть посилання на комірку, яку потрібно перевірити на наявність помилок. Наприклад:
=ISERROR(A2)
У разі виявлення помилки ви отримаєте значення TRUE, якщо помилки в комірці, що перевіряється, немає, ви отримаєте значення FALSE:
Формула IF ISERROR в Excel
Щоб повернути користувацьке повідомлення або виконати інший розрахунок при виникненні помилки, використовуйте ISERROR разом з функцією IF. Загальна формула виглядає наступним чином:
IF(ISERROR( формула (...), текст_або_розрахунок_при_помилці , формула ())У перекладі на людську мову це означає: якщо основна формула дає помилку, вивести вказаний текст або виконати інший розрахунок, інакше повернути нормальний результат формули.
На зображенні нижче, при діленні суми на кількість, виникає декілька помилок в Ціна колонка:
Щоб замінити всі різні коди помилок користувацьким текстом, ви можете використовувати наступну формулу IF ISERROR:
=IF(ISERROR(A2/B2), "Невідомо", A2/B2)
В Excel 2007 і більш пізніх версіях такого ж результату можна досягти за допомогою вбудованої функції ПОИСК ПОМИЛКИ:
=IFERROR(A2/B2, "Невідомо")
Слід зазначити, що формула IFERROR працює трохи швидше, оскільки виконує розрахунок A2/B2 лише один раз. Тоді як IF ISERROR розраховує його двічі - спочатку, щоб побачити, чи генерує вона помилку, а потім ще раз, якщо тест виявився FALSE.
Формула IF ISERROR VLOOKUP
Використання ISERROR з VLOOKUP фактично є окремим випадком формули IF ISERROR, розглянутої вище. Коли функція VLOOKUP не може знайти шукане значення або дає збій з будь-якої іншої причини, виводиться спеціальне текстове повідомлення за допомогою цього синтаксису:
IF(ISERROR(VLOOKUP(...)), " custom_text ", VLOOKUP(...))Для цього прикладу витягнемо час з таблиці пошуку (D3:E10) в основну таблицю (A3:B15). Якщо шукане значення (ПІБ учасника) не існує в таблиці пошуку, ми повернемо "Не пройшов кваліфікацію".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Не відповідає вимогам", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Порада. Якщо ви хочете відображати користувацький текст тільки при натисканні кнопки шукане значення не знайдено (помилка #N/A), ігноруючи інші помилки, то використовуйте формулу ЕСЛИ ВВОД в Excel 2013 і новіших версіях або ЕСЛИ ИСНА ВВОД в старіших версіях.
IF ISERROR INDEX MATCH формула
При виконанні пошуку за допомогою комбінації СРЗНАЧ (або формули СРЗНАЧ в Excel 365) можна відстежувати і обробляти будь-які можливі помилки за допомогою тієї ж техніки - функція ИСКЛЮЧЕНИЕ перевіряє наявність помилок, а функція ЕСЛИ виводить заданий текст при виникненні будь-якої помилки.
IF(ISERROR(INDEX ( return_column MATCH ( lookup_value , стовпець_пошуку , 0)))), " custom_text ", INDEX ( return_column MATCH ( lookup_value , стовпець_пошуку , 0)))Припустимо, що таблиця пошуку містить час у першому стовпчику. Оскільки VLOOKUP не може дивитися вліво, ми використовуємо формулу INDEX MATCH, щоб витягти час зі стовпчика D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
А потім вкладаєте його у вищезгадану загальну формулу, замінюючи спіймані помилки будь-яким текстом, який вам заманеться:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))), "Не кваліфіковано", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
Примітка. Як і у випадку з формулою ЕСЛИ ИСКЛЮЧАТЕЛЬНАЯ ОШИБКА, має сенс відловлювати тільки помилки #N/A і не маскувати потенційні проблеми з самою формулою. Для цього оберніть формулу ИНДЕКСМАТ в формулу ЕСЛИ в Excel 2013 і вище або ЕСЛИ ИСКЛЮЧАТЕЛЬНАЯ в більш ранніх версіях.
IF ISERROR формула Так/Ні
У всіх попередніх прикладах IF ISERROR повертала результат основної формули, якщо це не помилка. Однак вона може працювати і по-іншому - повертати щось, якщо помилка, і щось інше, якщо помилки немає.
IF(ISERROR( формула (...)), " text_if_error ", " text_if_no_error ")У нашому прикладі набору даних, припустимо, вас не цікавить точний час, ви просто хочете знати, які учасники з групи A пройшли кваліфікацію, а які ні. Для цього за допомогою функції MATCH порівняйте ім'я в колонці A зі списком кваліфікованих учасників в колонці D, а потім передайте результати в ISERROR. Якщо ім'я відсутнє в колонці D (MATCH повертає помилку), то отримаєтефункція IF виводить на екран "Ні" або "Не відповідає вимогам". Якщо ім'я з'являється в колонці D (без помилки), повертає "Так" або "Відповідає вимогам".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "Ні", "Так" )
Як порахувати кількість помилок
Щоб отримати кількість помилок у певному стовпчику, потрібно перевірити діапазон, а не одну комірку. Для цього "згодуйте" цільовий діапазон в ISERROR і за допомогою подвійного унарного оператора (--) перетворіть повернуті булеві значення в 1 і 0. Функція SUM або SUMPRODUCT може скласти числа і видати остаточний результат.
Наприклад:
=SUM(--ISERROR(C2:C10))
Зверніть увагу, що це працює як звичайна формула тільки в Excel 365 і Excel 2021, які підтримують динамічні масиви. В Excel 2019 і раніше для створення формули масиву потрібно натиснути Ctrl + Shift + Enter (не набирайте фігурні дужки вручну, це не спрацює!):
{=SUM(--ISERROR(C2:C10))}
Як варіант, можна скористатися функцією СУММЕСЛИ, яка обробляє масиви нативно, тому формулу можна завершити звичайною клавішею Enter у всіх версіях:
=SUMPRODUCT(--ISERROR(C2:C10))
Різниця між ISERROR та IFERROR в Excel
Для відстеження та обробки помилок в Excel використовуються функції ISERROR та IFERROR. Різниця полягає в наступному:
- У чистому вигляді функція ISERROR просто перевіряє, чи є значення помилкою чи ні. Вона доступна у всіх версіях Excel.
- Функція ЕСЛИ ПОМИЛКА призначена для придушення або маскування помилок - при виявленні помилки вона повертає інше значення, яке ви вкажете. Вона доступна в Excel 2007 і вище.
На перший погляд, IFERROR виглядає як скорочена альтернатива формулі IF ISERROR. Однак, придивившись уважніше, можна помітити різницю:
- IFERROR дозволяє вказати тільки значення_якщо_помилка Якщо немає помилки, він завжди повертає результат перевіреного значення/формули.
- IF ISERROR забезпечує більшу гнучкість і дозволяє обробляти обидві ситуації - що має статися, якщо помилка, і що, якщо помилки немає.
Щоб краще проілюструвати сказане, розглянемо такі формули:
=IFERROR(A1, "Помилка розрахунку")
=IF(ISERROR(A1), "Помилка розрахунку", A1)
Ці дві формули є еквівалентними - обидві перевіряють значення, що обчислюється за формулою в A1, і повертають "Помилка обчислення", якщо це помилка, інакше - повертають значення.
Але що робити, якщо потрібно виконати якийсь розрахунок, якщо значення в А1 не є помилкою? Функція IFERROR не може цього зробити. У випадку IF ISERROR просто введіть потрібний розрахунок в останньому аргументі. Наприклад:
=IF(ISERROR(A1), "Помилка розрахунку", A1*2)
Як бачите, ця довша варіація формули IFERROR, яку часто вважають застарілою, все ще може бути корисною :)
Доступні для завантаження
Приклади формул ISERROR (файл .xlsx)