Menu

ЕСЛИОШИБКА в Excel (эксель): замена #Н/Д и #ДЕЛ/0!

=ЕСЛИОШИБКА(B2/C2;0) возвращает B2/C2 или 0, когда деление даёт ошибку. ЕСЛИОШИБКА с ВПР, пустая ячейка вместо ошибки, почему для поиска лучше ЕСНД и почему, скрывая все ошибки, можно скрыть настоящие промахи.

Каждая таблица на этой странице живая: измените число или формулу, и она пересчитается.

=ЕСЛИОШИБКА(B2/C2;0) (по-английски IFERROR) возвращает результат B2/C2 или 0, когда этот результат ошибка. Первый аргумент это нужная вам формула; второй это то, что показать вместо любой ошибки, которую она выдаст. Таблицы на этой странице показывают английскую запись, но формулы в них можно вводить и по-русски, с точкой с запятой.

Цена за единицу
E2
ABCDE
1ProductRevenueUnitsPlainWith IFERROR
2Pens$12080$1.50$1.50
3Paper$30050$6.00$6.00
4Ink$900#DIV/0!$0.00
5Tape$4530$1.50$1.50
6Clips$00#DIV/0!$0.00
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ЕСЛИОШИБКА(B2/C2;0)

У Ink и Clips 0 единиц, поэтому простое деление в столбце D показывает #DIV/0! (в русском Excel #ДЕЛ/0!; таблицы здесь показывают ошибки под английскими именами). Столбец E показывает для них $0.00, а для всех остальных строк обычную цену. Введите 15 в C4, и оба столбца покажут цену Ink.

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

=IFERROR(value, value_if_error)
  • value (значение) это формула, которую нужно вычислить.
  • value_if_error (значение_если_ошибка) возвращается, когда value даёт любую ошибку: #Н/Д (#N/A), #ЗНАЧ! (#VALUE!), #ССЫЛКА! (#REF!), #ДЕЛ/0! (#DIV/0!), #ЧИСЛО! (#NUM!), #ИМЯ? (#NAME?), #ПУСТО! (#NULL!) и более новые, например #ВЫЧИСЛ! (#CALC!).
  • Если value не ошибка, ЕСЛИОШИБКА возвращает его без изменений.

Заменой может быть число (0), текст ("Not found"), пустой текст ("") или другая формула, например второй поиск в другой таблице: =ЕСЛИОШИБКА(ВПР(E2;A2:C6;3;ЛОЖЬ);ВПР(E2;G2:I6;3;ЛОЖЬ)).

ЕСЛИОШИБКА с ВПР

Поиск возвращает #Н/Д, когда значения нет в таблице. Если обернуть его в ЕСЛИОШИБКА, вместо ошибки появится сообщение:

Найти цену
F2
ABCDEF
1ProductCategoryPriceLook forPrice
2AppleFruit$1.20Pear$1.50
3PearFruit$1.50KiwiNot found
4CarrotVegetable$0.80Milk$1.10
5BreadBakery$2.40
6MilkDairy$1.10
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ЕСЛИОШИБКА(ВПР(E2;$A$2:$C$6;3;ЛОЖЬ);"Not found")

Kiwi в списке нет, поэтому F3 говорит Not found. Введите Kiwi в A4 вместо Carrot, и F3 его найдёт. С ПРОСМОТРX (XLOOKUP) ЕСЛИОШИБКА для этого не нужна, потому что её четвёртый аргумент и есть значение «не найдено»: =ПРОСМОТРX(E2;A2:A6;C2:C6;"Not found").

ЕСНД: перехватывать только #Н/Д

ЕСНД (IFNA) работает как ЕСЛИОШИБКА, но заменяет только #Н/Д. Для поиска обычно именно это и нужно: #Н/Д означает «не найдено», это нормальный ответ, а любая другая ошибка означает, что неверна сама формула. В этой таблице формулы просят столбец 4 из таблицы в три столбца, это опечатка:

ЕСЛИОШИБКА прячет опечатку, ЕСНД её показывает
F2
ABCDEFG
1ProductCategoryPriceLook forIFERRORIFNA
2AppleFruit1.2PearNot found#REF!
3PearFruit1.5
4CarrotVegetable0.8
5BreadBakery2.4
6MilkDairy1.1
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ЕСЛИОШИБКА(ВПР(E2;$A$2:$C$6;4;ЛОЖЬ);"Not found")

Pear в таблице есть, но F2 говорит Not found: ЕСЛИОШИБКА превратила #ССЫЛКА! (в таблице #REF!) от неверного номера столбца в то же сообщение, что и для отсутствующего товара. G2 пропускает #REF!, и вы видите, что формула сломана. Замените 4 на 3 в G2, и она вернёт 1.5. ЕСНД нужен Excel 2013 или новее.

Пустая ячейка вместо ошибки

Чтобы ничего не показывать, используйте в качестве замены пустой текст, две двойные кавычки:

Рост с пустыми ячейками вместо ошибок
D2
ABCD
1MonthLast yearThis yearGrowth
2Jan20024020%
3Feb0150
4Mar180171-5%
5Apr90
6May25030020%
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.В русском Excel: =ЕСЛИОШИБКА((C2-B2)/B2;"")

В Feb и Apr продаж в прошлом году не было, поэтому их рост посчитать нельзя, и ячейка остаётся пустой. Остальные месяцы показывают 20%, минус 5% и 20%. В ячейке с "" хранится текст: СУММ и СРЗНАЧ её пропускают, но =D3*2 даёт #ЗНАЧ!. Если дальше по столбцу считают арифметику, возвращайте вместо этого 0.

Практика: поиск с запасным вариантом

Поиск остатка
F2
ABCDEF
1ProductStockLook forStock
2Apple40Kiwi
3Pear25
4Carrot60
5Bread12
6Milk30
Нажмите на ячейку, чтобы увидеть её формулу. Измените число или формулу, и таблица пересчитается.

Ваша очередь: В F2 найдите остаток товара из E2 в A2:B6 и покажите "Not found", когда его нет в списке.

Почему, скрывая все ошибки, можно скрыть промахи

ЕСЛИОШИБКА ничего не исправляет; она решает, что покажет ячейка. Прежде чем оборачивать в неё формулу:

  1. Выясните, откуда ошибка. Когда #ДЕЛ/0! вызвана пустой ячейкой Units, настоящее решение может быть в данных, которые кто-то должен ввести, а не в нулевой цене.
  2. Для поиска выбирайте ЕСНД, чтобы неверный номер столбца (#ССЫЛКА!), опечатка в имени функции (#ИМЯ?) или текст в числовом столбце (#ЗНАЧ!) оставались видны.
  3. При делении проверяйте конкретный случай. =ЕСЛИ(C2=0;0;B2/C2) обрабатывает нулевой делитель и больше ничего; неверная ссылка в B2 по-прежнему покажет свою ошибку. Страница об ошибке #ДЕЛ/0! сравнивает оба подхода.
  4. Выбирайте замену, которую нельзя принять за данные. 0 в столбце цен выглядит как настоящая цена и снижает среднее; "" или «Not found» так не выглядят.

Оборачивайте формулу в последнюю очередь, когда она уже даёт верный результат в тех строках, где должна работать.

Часто задаваемые вопросы

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

Оберните поиск: =ЕСЛИОШИБКА(ВПР(E2;A2:C6;3;ЛОЖЬ);"Not found"). Когда E2 нет в первом столбце, ячейка показывает Not found вместо #Н/Д. =ЕСНД(ВПР(E2;A2:C6;3;ЛОЖЬ);"Not found") делает то же самое, но по-прежнему показывает другие ошибки.

Как сделать, чтобы ЕСЛИОШИБКА возвращала пустую ячейку?

Укажите вторым аргументом пустой текст: =ЕСЛИОШИБКА(B2/C2;""). Ячейка выглядит пустой, но в ней текст, поэтому =D2+1 по ней даёт #ЗНАЧ!; СУММ и СРЗНАЧ её пропускают.

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

ЕСЛИОШИБКА заменяет любую ошибку: #Н/Д, #ДЕЛ/0!, #ЗНАЧ!, #ССЫЛКА!, #ИМЯ?, #ЧИСЛО! и #ПУСТО!. ЕСНД заменяет только #Н/Д, «не найдено» при поиске, и показывает все остальные ошибки, так что сломанная формула не прячется.

Как заменить #Н/Д на 0 в Excel?

Оберните формулу в ЕСНД со значением 0: =ЕСНД(ВПР(E2;A2:C6;3;ЛОЖЬ);0). У ПРОСМОТРX замена встроена в четвёртый аргумент: =ПРОСМОТРX(E2;A2:A6;C2:C6;0).

В каких версиях Excel есть ЕСЛИОШИБКА и ЕСНД?

ЕСЛИОШИБКА есть с Excel 2007, ЕСНД с Excel 2013. В старых файлах встречается =ЕСЛИ(ЕОШИБКА(B2/C2);0;B2/C2): она делает ту же работу, что ЕСЛИОШИБКА, но вычисляет формулу дважды.

Иллюстрация языков программирования Coddy

Учитесь программировать с Coddy

НАЧАТЬ