Добавить в корзинуПозвонить
Найти в Дзене
Мир таблиц

Функция ЕСНД в Excel: исправляем ошибку ненайденных данных

В прошлый раз мы изучили функцию ЕСЛИОШИБКА, которая заменяет сообщение об ошибке вашей формулы на другое значение. Сегодня мы рассмотрим частный случай этой функции - функцию ЕСНД. Эта функция введена начиная с версии Excel 2013 и работает точно так же, как и ЕСЛИОШИБКА, за исключением того, что она предпринимает альтернативные действия только при возникновении ошибки #Н/Д. Она обычно возникает, когда формула не находит запрашиваемое значение. Функция ЕСНД требует два аргумента: =ЕСНД(значение; значение_если_нд) Давайте перейдём к примеру. Вернее вернёмся к примеру с уровнями членства покупателей и скидок зависящих от него. Мы уже рассматривали его, перейдя по ссылке, можете освежить в памяти условие. Тогда мы решили задачу с помощью функции ПЕРЕКЛЮЧ, потому что, это более оптимальный способ, чем другие. Но, допустим, мы бы использовали по какой-либо причине функцию ЕСЛИМН для решения этой задачи. ЕСЛИМН мы подробно разбирали в этой статье. Может быть в вашей версии Excel ещё не появи

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

Эта функция введена начиная с версии Excel 2013 и работает точно так же, как и ЕСЛИОШИБКА, за исключением того, что она предпринимает альтернативные действия только при возникновении ошибки #Н/Д. Она обычно возникает, когда формула не находит запрашиваемое значение.

Функция ЕСНД требует два аргумента:

=ЕСНД(значение; значение_если_нд)
  • Значение: Значение,которое проверяется на наличие ошибки #Н/Д. Это может быть формула, ссылка на ячейку или логическое выражение.
  • Значение если нд: Действие, которое нужно выполнить, если возвращается ошибка #Н/Д.

Давайте перейдём к примеру. Вернее вернёмся к примеру с уровнями членства покупателей и скидок зависящих от него. Мы уже рассматривали его, перейдя по ссылке, можете освежить в памяти условие. Тогда мы решили задачу с помощью функции ПЕРЕКЛЮЧ, потому что, это более оптимальный способ, чем другие.

-2

Но, допустим, мы бы использовали по какой-либо причине функцию ЕСЛИМН для решения этой задачи. ЕСЛИМН мы подробно разбирали в этой статье. Может быть в вашей версии Excel ещё не появилась функция ПЕРЕКЛЮЧ. Ведь она появилась с версии Excel 2019, а ЕСЛИМН с Excel 2016.

Напомню, что основной недостаток ЕСЛИМН то, что она не имеет встроенного аргумента значения по умолчанию. Это значит, что она будет перебирать все предложенные ей варианты значений, пока не найдёт нужный. А если не найдёт никакой, то вместо того, чтобы выдать какой-нибудь результат для этого случая, она вернёт ошибку.

Итак, напишем формулу для решения нашего примера:

=ЕСЛИМН(B2="Платиновый";C2*(1-20%);
B2="Золотой";C2*(1-15%);
B2="Серебряный";C2*(1-10%);
B2="Бронзовый";C2*(1-5%))

Вот что у нас получилось:

-3

Правда при заполнении уровней членства мы, к сожалению, забыли правила русского языка и написали "Серебрянный" с двумя "н". В нашей формуле такого слова нет и, соответственно, она его не нашла и выдала ошибку #Н/Д. Досадно, конечно, но мы с вами понимаем генезис этой ошибки и можем её исправить.

Но, что если с таблицей будет работать человек не сведущий в тонкостях Excel? Увидев #Н/Д он/а запаникует, не поймёт что это и откуда, начнёт звонить сисадмину. Чтобы предупредить это, для таких пользователей мы можем заменить ошибку на человеческое объяснение.

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

=ЕСНД(ЕСЛИМН(B2="Платиновый";C2*(1-20%);
B2="Золотой";C2*(1-15%);
B2="Серебряный";C2*(1-10%);
B2="Бронзовый";C2*(1-5%));
"Уровень не найден")

Теперь человек, работающий с таблицей поймёт, что надо перепроверить название уровня членства.

-4

С сегодняшним примером вы можете ознакомиться в файле по ссылке. Ваши вопросы задавайте в комментариях.

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

Не переключайтесь;)