Ошибки в формулах - обычное дело. Если у вас есть набор данных с сотнями записей, то время от времени обязательно будут появляться ошибки деления на ноль и # Н / Д.
В прошлом для предотвращения ошибок требовались титанические усилия. Сознательно кивайте головой, если вы когда-нибудь нокаутировали =IF(ISNA(VLOOKUP(A2,Table,2,0),"Not Found",VLOOKUP(A2,Table,2,0))
. Помимо того, что это решение очень долго набирать, для этого решения требуется вдвое больше ВПР. Сначала вы выполняете VLOOKUP, чтобы увидеть, не приведет ли VLOOKUP к ошибке. Затем вы снова выполняете ту же функцию VLOOKUP, чтобы получить результат без ошибок.
В Excel 2010 значительно улучшен =IFERROR(Formula,Value If Error)
. Я знаю, что ЕСЛИОШИБКА звучит как старые функции ISERROR, ISERR и ISNA, но это совершенно другое.
Это гениальная функция: =IFERROR(VLOOKUP(A2,Table,2,0),"Not Found")
. Если у вас 1000 VLOOKUP и только 5 возвращают # N / A, то 995, которые сработали, требуют только одного VLOOKUP. Только 5 ВПР вернули # Н / Д, что необходимо для перехода ко второму аргументу ЕСЛИОШИБКИ.
Как ни странно, в Excel 2013 добавлена функция IFNA (). Это похоже на ЕСЛИОШИБКА, но ищет только ошибки # Н / Д. Можно представить себе странную ситуацию, когда значение в поисковой таблице найдено, но в результате получается деление на 0. Если по какой-то причине вы хотите сохранить ошибку деления на ноль, вы можете использовать IFNA () для выполнения этот.
![](https://cdn.wiki-base.com/2628305/excel_2020_suppress_errors_with_iferror_-_excel_tips.png.webp)
Конечно, человек, который построил таблицу поиска, должен был использовать ЕСЛИОШИБКА, чтобы предотвратить деление на ноль в первую очередь. На рисунке ниже «nm» - это код бывшего менеджера для «не имеет смысла».
![](https://cdn.wiki-base.com/2628305/excel_2020_suppress_errors_with_iferror_-_excel_tips_2.png.webp)
Спасибо Джастину Фишману, Стивену Гилмеру и Excel Джо.