Функция ISERROR в Excel с примерами формул

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

В учебном пособии рассматривается практическое использование функции Excel ISERROR и показано, как проверить различные формулы на наличие ошибок.

Когда вы пишете формулу, которую 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(value)

    Где значение это значение ячейки или формула, которую нужно проверить на наличие ошибок.

    Формула 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:

    =IFERROR(A2/B2, "Неизвестно")

    Следует отметить, что формула IFERROR работает немного быстрее, поскольку она выполняет вычисление A2/B2 только один раз. В то время как IF ISERROR вычисляет его дважды - сначала, чтобы проверить, не выдает ли он ошибку, а затем снова, если тест FALSE.

    Формула IF ISERROR VLOOKUP

    Использование ISERROR в VLOOKUP, по сути, является частным случаем формулы IF ISERROR, рассмотренной выше. Когда функция VLOOKUP не может найти искомое значение или терпит неудачу по какой-либо другой причине, вы выводите пользовательское текстовое сообщение, используя этот синтаксис:

    IF(ISERROR(VLOOKUP(...)), " пользовательский_текст ", VLOOKUP(...))

    Для этого примера возьмем время из таблицы поиска (D3:E10) в основную таблицу (A3:B15). Если искомое значение (имя участника) не существует в таблице поиска, мы вернем "Not qualified".

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Не квалифицирован", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))

    Совет. Если вы хотите отображать пользовательский текст только при значение поиска не найдено (ошибка #N/A), игнорируя другие ошибки, то используйте формулу IFNA VLOOKUP в Excel 2013 и более поздних версиях или IF ISNA VLOOKUP в более старых версиях.

    Формула IF ISERROR INDEX MATCH

    При выполнении поиска с помощью комбинации INDEX MATCH (или формулы INDEX XMATCH в Excel 365) можно отлавливать и обрабатывать возможные ошибки, используя ту же технику - функция ISERROR проверяет наличие ошибок, а IF выводит указанный текст при возникновении любой ошибки.

    IF(ISERROR(INDEX ( возвратный_столбец , MATCH ( поиск_значения , lookup_column , 0)))), " пользовательский_текст ", INDEX ( возвратный_столбец , MATCH ( поиск_значения , lookup_column , 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))), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))

    Примечание. Как и в случае с формулой IF ISERROR VLOOKUP, имеет смысл отлавливать только ошибки #N/A и не маскировать потенциальные проблемы в самой формуле. Для этого оберните формулу INDEX MATH в IFNA в Excel 2013 и выше или IF ISNA в более ранних версиях.

    ЕСЛИ ИСКЛЮЧЕНА формула Да/Нет

    Во всех предыдущих примерах 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))}

    В качестве альтернативы можно использовать функцию SUMPRODUCT, которая работает с массивами нативно, поэтому формулу можно завершить обычной клавишей Enter во всех версиях:

    =SUMPRODUCT(--ISERROR(C2:C10))

    Разница между ISERROR и IFERROR в Excel

    Обе функции ISERROR и IFERROR используются для отлова и обработки ошибок в Excel. Разница заключается в следующем:

    • В чистом виде ISERROR просто проверяет, является ли значение ошибкой или нет. Он доступен во всех версиях Excel.
    • Функция IFERROR предназначена для подавления или маскировки ошибок - при обнаружении ошибки она возвращает другое значение, которое вы укажете. Она доступна в Excel 2007 и выше.

    На первый взгляд, IFERROR выглядит как сокращенная альтернатива формуле IF ISERROR. Однако при ближайшем рассмотрении можно заметить разницу:

    • IFERROR позволяет указать только значение_если_ошибка Если ошибки нет, то всегда возвращается результат проверенного значения/формулы.
    • IF ISERROR обеспечивает большую гибкость и позволяет обрабатывать обе ситуации - что должно произойти в случае ошибки и что в случае отсутствия ошибки.

    Чтобы лучше проиллюстрировать этот момент, рассмотрим эти формулы:

    =IFERROR(A1, "Ошибка вычисления")

    =IF(ISERROR(A1), "Ошибка вычисления", A1)

    Эти две формулы эквивалентны - обе проверяют заданное формулой значение в A1 и возвращают "Ошибка вычисления", если это ошибка, иначе - возвращают значение.

    Но что, если вы хотите выполнить какой-то расчет, если значение в A1 не является ошибкой? Функция IFERROR не может этого сделать. В случае IF ISERROR просто введите желаемый расчет в последний аргумент. Например:

    =IF(ISERROR(A1), "Ошибка вычисления", A1*2)

    Как видите, эта более длинная вариация формулы IFERROR, которую часто считают устаревшей, все еще может быть полезной :)

    Доступные загрузки

    Примеры формул ISERROR (файл.xlsx)

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