Функция ЕСЛИОШИБКА (IFERROR) в Excel
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Функция ЕСЛИОШИБКА в Excel возвращает результат формулы, а если формула выдала ошибку (#Н/Д, #ДЕЛ/0!, #ЗНАЧ! и другие) — указанное вами значение: =ЕСЛИОШИБКА(A2/B2;0) вернёт 0 вместо #ДЕЛ/0!, =ЕСЛИОШИБКА(ВПР(E2;A2:B100;2;0);"нет в списке") — подпись вместо #Н/Д, а =ЕСЛИОШИБКА(ВПР(E2;A2:B100;2;0);"") — пустую ячейку. Первый аргумент — проверяемая формула, второй — что показать при ошибке. На английском функция называется IFERROR.

Функция ЕСЛИОШИБКА в Excel
ЕСЛИОШИБКА - примеры использования
Раздел функцийЛогические
Название и описание на английскомIFERROR
ВолатильностьНе волатильная
Похожие функцииЕСЛИ, ЕОШ

Что делает ЕСЛИОШИБКА?

Часто при использовании формул, если результат возвращает ошибку, нужно обрабатывать ее, а если нет - возвращать результат вычисления.

Реклама

Именно эту задачу и решает функция ЕСЛИОШИБКА.

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

Оцениваются следующие типы ошибок: #Н/Д, #ЗНАЧ!, #ССЫЛКА!, #ДЕЛ/0!, #ЧИСЛО!, #ИМЯ? и #ПУСТО!

Эквивалентным сочетанием была бы формула на основе комбинации функции ЕСЛИ и ЕОШ.

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

ЕСЛИ(ЕОШ(вычисление);"результат-если-ошибка";вычисление)

Отличие ЕСЛИОШИБКА в том, что она производит вычисление однократно и экономит ресурсы.

Старый и новый способ перехватить ошибку
D3=ЕСЛИОШИБКА(A3/B3;0)
ABCD
1ДелимоеДелительЕСЛИ + ЕОШЕСЛИОШИБКА
21025=ЕСЛИ(ЕОШ(A2/B2);0;A2/B2)5=ЕСЛИОШИБКА(A2/B2;0)
31000=ЕСЛИ(ЕОШ(A3/B3);0;A3/B3)0=ЕСЛИОШИБКА(A3/B3;0)

Результат одинаковый, но ЕСЛИОШИБКА записывается короче и считает деление один раз.

В английском Excel: =IFERROR(A2/B2,0)

Также использование функции упрощает синтаксис формул.

Синтаксис функции ЕСЛИОШИБКА

Синтаксис функции ЕСЛИОШИБКА предполагает всего два аргумента, оба - обязательные:

=ЕСЛИОШИБКА(Значение-Или-Вычисление;Значение-если-ошибка)

Пример 1: ЕСЛИОШИБКА + ВПР

Наиболее характерный пример использования - в паре с функцией ВПР при поиске данных в больших таблицах.

Вариант "если ошибка, то своё значение":

=ЕСЛИОШИБКА(ВПР(ячейка-или-значение;диапазон;номер-столбца;0);"ошибка")

Вариант "Если ошибка, то пусто":

=ЕСЛИОШИБКА(ВПР(ячейка-или-значение;диапазон;номер-столбца;0);"")

Поскольку ВПР может изрядно загрузить процессор, функция ЕСЛИОШИБКА здесь весьма кстати.

ЕСЛИОШИБКА + ВПР
F3=ЕСЛИОШИБКА(ВПР(D3;A2:B4;2;0);"нет в списке")
ABCDEF
1ТоварЦенаИщемВПРС ЕСЛИОШИБКА
2Чай120Кофе300=ВПР(D2;A2:B4;2;0)300=ЕСЛИОШИБКА(ВПР(D2;A2:B4;2;0);"нет в списке")
3Кофе300Сок#Н/Д=ВПР(D3;A2:B4;2;0)нет в списке=ЕСЛИОШИБКА(ВПР(D3;A2:B4;2;0);"нет в списке")
4Какао180

«Сока» нет в таблице, и ВПР вернула #Н/Д. ЕСЛИОШИБКА подставила подпись; вместо неё можно указать "" — тогда ячейка будет выглядеть пустой.

В английском Excel: =IFERROR(VLOOKUP(D2,A2:B4,2,0),"нет в списке")

Пример 2: ЕСЛИОШИБКА + деление на ноль

Задача маркетолога - произвести оценку эффективности рекламных кампаний. Один из ключевых показателей - стоимость привлечения клиента. Рассчитывается он довольно просто - расходы по рекламным кампаниям делятся на количество приведенных ими клиентов.

Что делать, когда кампания не привела ни одного? Вычисление выдаст ошибку

#ДЕЛ/0!

Оставлять ее не стоит, ведь деньги на рекламу были потрачены, и нужно это учитывать.

Лучший вариант - представить, что один клиент был приведен, т.к. рано или поздно это произойдет, а эффективность нужно смотреть уже сейчас. Функция ЕСЛИОШИБКА дает возможность вернуть весь расход на кампанию, если возникает ошибка деления на ноль.

Пример 2: цена клиента без #ДЕЛ/0!
D3=ЕСЛИОШИБКА(B3/C3;B3)
ABCD
1КампанияРасходКлиентыЦена клиента
2Поиск1200081500=ЕСЛИОШИБКА(B2/C2;B2)
3Баннеры500005000=ЕСЛИОШИБКА(B3/C3;B3)
4Соцсети900033000=ЕСЛИОШИБКА(B4/C4;B4)

У «Баннеров» нет клиентов: вместо ошибки формула показывает весь расход, как будто клиент был один.

В английском Excel: =IFERROR(B2/C2,B2)

ЕСЛИОШИБКА - пример 1

Наиболее наглядна польза от такой формулы - если использовать условное форматирование с цветовой шкалой. Сразу бросаются в глаза эффективные и неэффективные кампании.

ЕСЛИОШИБКА - пример 2

Пример 3: ЕСЛИОШИБКА в формулах массива

Проблема функций МИН и МАКС при работе с массивами в том, что, если в массиве присутствует хотя бы одна ошибка, они также возвращают ошибку.

Поэтому, если есть вероятность такого события, функцию ЕСЛИОШИБКА нужно использовать как обработчик, чтобы избежать результирующей ошибки.

Формула для поиска позиции первого символа латиницы:

={МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1);""))}

Механика ее работы такова:

  • Функция СИМВОЛ создает массив букв английского алфавита;
  • Функция ПОИСК ищет позицию каждой буквы в строке;
  • Если буква не найдена, функция вернет ошибку #ЗНАЧ!;
  • Функция ЕСЛИОШИБКА возвращает пустую строку в таких случаях, а числа оставляет как они есть;
  • Функция МИН пропускает пустые строки и возвращает минимальное число;
  • Если весь массив будет состоять из пустых строк, функция МИН вернет 0.

А такая формула использует массив констант и ищет позицию первой цифры:

={МИН(ЕСЛИОШИБКА(ПОИСК({1:2:3:4:5:6:7:8:9:0};A1);""))}

Читайте подробнее в статье про формулы массива.

Пример 3: позиция первого символа
B2=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A2);""))
ABC
1ТекстПервая латинская букваПервая цифра
2Чехол iPhone 157=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A2);""))14=МИН(ЕСЛИОШИБКА(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2);""))
3Москва-20260=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A3);""))8=МИН(ЕСЛИОШИБКА(ПОИСК({0;1;2;3;4;5;6;7;8;9};A3);""))
4без цифр0=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A4);""))0=МИН(ЕСЛИОШИБКА(ПОИСК({0;1;2;3;4;5;6;7;8;9};A4);""))

Ненайденные символы дают ошибки, ЕСЛИОШИБКА превращает их в пустые строки, и МИН выбирает наименьшую позицию. Если не найдено ничего, результат — 0. В Excel 2019 и раньше — Ctrl+Shift+Enter.

ЕСЛИОШИБКА или ЕСНД

ЕСЛИОШИБКА перехватывает любые ошибки, в том числе те, о которых лучше знать: опечатку в имени (#ИМЯ?) или битую ссылку (#ССЫЛКА!). Если нужно обработать только «не найдено» от ВПР и ПОИСКПОЗ, используйте ЕСНД — она реагирует только на #Н/Д.

Какие ошибки скрывает каждая функция
B3=ЕСЛИОШИБКА(ВПР(A3;$E$2:$F$3;5;0);"нет")
ABCDEF
1ИщемЕСЛИОШИБКАЕСНДТоварЦена
2Сокнет=ЕСЛИОШИБКА(ВПР(A2;$E$2:$F$3;2;0);"нет")нет=ЕСНД(ВПР(A2;$E$2:$F$3;2;0);"нет")Чай120
3Чайнет=ЕСЛИОШИБКА(ВПР(A3;$E$2:$F$3;5;0);"нет")#ССЫЛКА!=ЕСНД(ВПР(A3;$E$2:$F$3;5;0);"нет")Кофе300

В строке 3 в ВПР ошибочно указан 5-й столбец таблицы из двух. ЕСЛИОШИБКА спрятала эту ошибку за «нет», а ЕСНД показала её — так её проще заметить и исправить.

В английском Excel: =IFNA(VLOOKUP(A2,$E$2:$F$3,2,0),"нет")

Другие логические функции

ЕСЛИ, И, ИЛИ, НЕ

Почему ЕСЛИОШИБКА не работает — частые ошибки

  • Excel пишет «В формуле обнаружена ошибка». Не хватает скобки или точки с запятой между аргументами: =ЕСЛИОШИБКА(формула;значение).
  • Пустая строка "" мешает расчётам. Ячейка с "" не пустая: СЧЁТЗ её считает, а сложение с ней даёт #ЗНАЧ!. Если результат будет использоваться в вычислениях, возвращайте 0.
  • Ошибка спрятана, а данные неверные. ЕСЛИОШИБКА скрывает и опечатки в формуле. При отладке временно уберите её или используйте ЕСНД.
  • Формула медленная. ЕСЛИОШИБКА не ускоряет ВПР сама по себе — на больших таблицах сократите диапазоны поиска.

ЕСЛИОШИБКА — частые вопросы

Что значит ЕСЛИОШИБКА в Excel?

Это функция «если ошибка, то»: она возвращает результат формулы, а при ошибке — значение из второго аргумента.

Как сделать, чтобы вместо ошибки была пустая ячейка?

Укажите вторым аргументом пустые кавычки: =ЕСЛИОШИБКА(A2/B2;"").

Как использовать ЕСЛИОШИБКА с ВПР?

Оберните ВПР целиком: =ЕСЛИОШИБКА(ВПР(E2;A2:B100;2;0);"нет").

Как называется ЕСЛИОШИБКА на английском?

IFERROR. Синтаксис тот же: =IFERROR(value,value_if_error).

Чем ЕСЛИОШИБКА отличается от ЕСНД?

ЕСЛИОШИБКА перехватывает все ошибки, ЕСНД — только #Н/Д.

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

Итоги: функция ЕСЛИОШИБКА в Excel

ЗадачаФормула
0 вместо #ДЕЛ/0!=ЕСЛИОШИБКА(A2/B2;0)
Подпись вместо #Н/Д в ВПР=ЕСЛИОШИБКА(ВПР(…);"нет")
Пустая ячейка вместо ошибки=ЕСЛИОШИБКА(формула;"")
Только «не найдено»=ЕСНД(ВПР(…);"нет")
Ошибки внутри массива=МИН(ЕСЛИОШИБКА(ПОИСК(…);""))

Надеюсь, на этой странице вы нашли то, что искали. ЕСЛИОШИБКА делает таблицы аккуратными, но прячет и настоящие ошибки — используйте её осознанно.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*