Как использовать IFERROR в Excel с примерами формул

  • Поделись Этим
Michael Brown

В уроке показано, как использовать IFERROR в Excel для отлова ошибок и замены их пустой ячейкой, другим значением или пользовательским сообщением. Вы узнаете, как использовать функцию IFERROR с Vlookup и Index Match, и как она сравнивается с IF ISERROR и IFNA.

"Дайте мне место, где стоять, и я сдвину землю", - сказал Архимед. "Дайте мне формулу, и я заставлю ее вернуть ошибку", - скажет пользователь Excel. В этом учебнике мы не будем рассматривать, как вернуть ошибки в Excel, а лучше узнаем, как их предотвратить, чтобы ваши рабочие листы оставались чистыми, а формулы - прозрачными.

    Функция Excel IFERROR - синтаксис и основные способы использования

    Функция IFERROR в Excel предназначена для отлова и устранения ошибок в формулах и вычислениях. Если говорить точнее, IFERROR проверяет формулу и, если ее оценка приводит к ошибке, возвращает другое указанное вами значение; в противном случае возвращается результат формулы.

    Синтаксис функции Excel IFERROR следующий:

    IFERROR(value, value_if_error)

    Где:

    • Значение (требуется) - что проверять на наличие ошибок. Это может быть формула, выражение, значение или ссылка на ячейку.
    • Значение_если_ошибка (требуется) - что возвращать в случае обнаружения ошибки. Это может быть пустая строка (пустая ячейка), текстовое сообщение, числовое значение, другая формула или расчет.

    Например, при делении двух столбцов чисел вы можете получить кучу различных ошибок, если один из столбцов содержит пустые ячейки, нули или текст.

    Чтобы этого не произошло, используйте функцию IFERROR, чтобы перехватывать и обрабатывать ошибки так, как вам нужно.

    Если ошибка, то пустой

    Введите пустую строку ("") в значение_если_ошибка аргумент для возврата пустой ячейки, если обнаружена ошибка:

    =IFERROR(A2/B2, "")

    Если ошибка, то покажите сообщение

    Вы также можете вывести собственное сообщение вместо стандартного обозначения ошибки в Excel:

    =IFERROR(A2/B2, "Ошибка в расчете")

    5 вещей, которые вы должны знать о функции Excel IFERROR

    1. Функция IFERROR в Excel обрабатывает все типы ошибок, включая #DIV/0!, #N/A, #NAME?, #NULL!, #NUM!, #REF! и #VALUE!
    2. В зависимости от содержимого значение_если_ошибка аргумент, IFERROR может заменить ошибки на ваше пользовательское текстовое сообщение, число, дату или логическое значение, результат другой формулы или пустую строку (пустую ячейку).
    3. Если значение аргумент является пустой ячейкой, он рассматривается как пустая строка ('''), но не как ошибка.
    4. Функция IFERROR появилась в Excel 2007 и доступна во всех последующих версиях Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021 и Excel 365.
    5. Чтобы отловить ошибки в Excel 2003 и более ранних версиях, используйте функцию ISERROR в сочетании с IF, как показано в этом примере.

    Примеры формулы IFERROR

    В следующих примерах показано, как использовать IFERROR в Excel в сочетании с другими функциями для выполнения более сложных задач.

    Excel IFERROR с помощью Vlookup

    Одно из самых распространенных применений функции IFERROR - сообщить пользователям, что искомое значение не существует в наборе данных. Для этого вы обернете формулу VLOOKUP в IFERROR следующим образом:

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

    Если значение поиска не находится в таблице, в которой вы ищете, обычная формула Vlookup вернет ошибку #N/A:

    Чтобы ваши пользователи были спокойны, оберните VLOOKUP в IFERROR и выведите более информативное и удобное для пользователя сообщение:

    =IFERROR(VLOOKUP(A2, 'Lookup table'!$A$2:$B$4, 2,FALSE), "Not found")

    На скриншоте ниже показана эта формула Iferror в Excel:

    Если вы хотите отлавливать только ошибки #N/A, но не все ошибки, используйте функцию IFNA вместо IFERROR.

    Другие примеры формул Excel IFERROR VLOOKUP смотрите в этих руководствах:

    • Iferror с Vlookup для отлова и обработки ошибок
    • Как получить N-ое вхождение значения поиска
    • Как получить все вхождения значения поиска

    Вложенные функции IFERROR для выполнения последовательных Vlookup в Excel

    В ситуациях, когда необходимо выполнить несколько Vlookup в зависимости от того, был ли предыдущий Vlookup успешным или неудачным, можно вложить две или более функций IFERROR одна в другую.

    Предположим, у вас есть несколько отчетов о продажах из региональных филиалов вашей компании, и вы хотите получить сумму для определенного ID заказа. С A2 в качестве значения поиска на текущем листе и A2:B5 в качестве диапазона поиска на 3 листах поиска (Отчет 1, Отчет 2 и Отчет 3), формула выглядит следующим образом:

    =IFERROR(VLOOKUP(A2,'Отчет 1'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Отчет 2'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'Отчет 3'!A2:B5,2,0), "не найден")))

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

    Подробное объяснение логики работы формулы можно найти в статье Как делать последовательные Vlookups в Excel.

    IFERROR в формулах массивов

    Как вы, вероятно, знаете, формулы массивов в Excel предназначены для выполнения нескольких вычислений в рамках одной формулы. Если вы вводите формулу массива или выражение, которое приводит к массиву в значение аргумент функции IFERROR, то она вернет массив значений для каждой ячейки в указанном диапазоне. В примере ниже показаны подробности.

    Допустим, у вас есть Всего в колонке B и Цена в столбце C, и вы хотите вычислить Общее количество Это можно сделать с помощью следующего формула массива, который делит каждую ячейку диапазона B2:B4 на соответствующую ячейку диапазона C2:C4, а затем складывает результаты:

    =SUM($B$2:$B$4/$C$2:$C$4)

    Формула работает нормально, пока в диапазоне делителей нет нулей или пустых ячеек. Если есть хотя бы одно значение 0 или пустая ячейка, возвращается ошибка #DIV/0!

    Чтобы исправить эту ошибку, просто выполните деление в функции IFERROR:

    =SUM(IFERROR($B$2:$B$4/$C$2:$C$4,0))

    Формула делит значение в столбце B на значение в столбце C в каждой строке (100/2, 200/5 и 0/0) и возвращает массив результатов {50; 40; #DIV/0!}. Функция IFERROR отлавливает все ошибки #DIV/0! и заменяет их нулями. Затем функция SUM складывает значения в полученном массиве {50; 40; 0} и выводит окончательный результат (50+40=90).

    Примечание. Пожалуйста, помните, что формулы массива должны быть завершены нажатием комбинации клавиш Ctrl + Shift + Enter.

    IFERROR против IF ISERROR

    Теперь, когда вы знаете, как легко использовать функцию IFERROR в Excel, вы можете задаться вопросом, почему некоторые люди все еще склоняются к использованию комбинации IF ISERROR. Есть ли у нее какие-либо преимущества по сравнению с IFERROR? Нет. В старые добрые времена Excel 2003 и ниже, когда IFERROR не существовало, IF ISERROR был единственным возможным способом отлавливать ошибки. В Excel 2007 и более поздних версиях это просто немного более сложный способ, чтобыдостичь того же результата.

    Например, чтобы отловить ошибки Vlookup, можно использовать одну из приведенных ниже формул.

    В Excel 2007 - Excel 2016:

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

    Во всех версиях Excel:

    IF(ISERROR(VLOOKUP(...)), "Не найдено", VLOOKUP(...))

    Обратите внимание, что в формуле IF ISERROR VLOOKUP вы должны выполнить Vlookup дважды. На простом английском языке формулу можно прочитать так: Если Vlookup приводит к ошибке, верните "Not found", иначе выведите результат Vlookup.

    А вот реальный пример формулы Excel If Iserror Vlookup:

    =IF(ISERROR(VLOOKUP(D2, A2:B5,2,FALSE)), "Не найдено", VLOOKUP(D2, A2:B5,2,FALSE ))

    Для получения дополнительной информации см. раздел Использование функции ISERROR в Excel.

    IFERROR против IFNA

    Введенная в Excel 2013, IFNA - это еще одна функция для проверки формулы на наличие ошибок. Ее синтаксис аналогичен синтаксису IFERROR:

    IFNA(value, value_if_na)

    Чем IFNA отличается от IFERROR? Функция IFNA ловит только ошибки #N/A в то время как IFERROR обрабатывает все типы ошибок.

    В каких ситуациях вам может понадобиться использование IFNA? Когда неразумно маскировать все ошибки. Например, при работе с важными или конфиденциальными данными вы можете захотеть получить предупреждение о возможных ошибках в вашем наборе данных, и стандартные сообщения об ошибках Excel с символом "#" могут быть яркими визуальными индикаторами.

    Давайте посмотрим, как можно сделать формулу, которая выводит сообщение "Не найдено" вместо ошибки N/A, которая появляется, когда искомое значение отсутствует в наборе данных, но обращает ваше внимание на другие ошибки Excel.

    Предположим, вы хотите вытащить Qty. из таблицы поиска в сводную таблицу, как показано на скриншоте ниже. Использование формулы Excel Iferror Vlookup даст эстетически приятный результат, который технически неверен, потому что Лимоны существуют в таблице поиска:

    Чтобы поймать #N/A, но отобразить ошибку #DIV/0, используйте функцию IFNA в Excel 2013 и Excel 2016:

    =IFNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE), "Не найдено")

    Или комбинация IF ISNA в Excel 2010 и более ранних версиях:

    =IF(ISNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE)), "Не найдено", VLOOKUP(F3,$A$3:$D$6,4,FALSE))

    Синтаксис формул IFNA VLOOKUP и IF ISNA VLOOKUP аналогичен синтаксису формул IFERROR VLOOKUP и IF ISERROR VLOOKUP, рассмотренных ранее.

    Как показано на скриншоте ниже, формула Ifna Vlookup возвращает "Not found" только для элемента, которого нет в таблице поиска ( Персики ). Для Лимоны показывает #DIV/0!, указывая на то, что наша таблица поиска содержит ошибку деления на ноль:

    Более подробную информацию см. в разделе Использование функции IFNA в Excel.

    Лучшие практики использования IFERROR в Excel

    Вы уже знаете, что функция IFERROR - это самый простой способ отловить ошибки в Excel и замаскировать их с помощью пустых ячеек, нулевых значений или собственных сообщений. Однако это не значит, что вы должны каждую формулу обернуть обработкой ошибок. Следующие простые рекомендации помогут вам сохранить баланс.

    1. Не отлавливайте ошибки без причины.
    2. Оберните минимально возможную часть формулы в IFERROR.
    3. Чтобы обрабатывать только конкретные ошибки, используйте функцию обработки ошибок с меньшей областью действия:
      • IFNA или IF ISNA, чтобы отлавливать только ошибки #N/A.
      • ISERR для перехвата всех ошибок, кроме #N/A.

    Вот как вы используете функцию IFERROR в Excel для отлова и обработки ошибок. Для более детального изучения формул, рассмотренных в этом уроке, вы можете скачать наш образец рабочей книги IFERROR Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе.

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.