В этом уроке вы узнаете, как в Эксель можно сделать свою собственную функцию. Это упросит работу с данными и поможет избежать составления сложной формулы при каждом типовом расчете.
При работе в Эксель очень часто возникают ситуации, когда вы используете одни и те же конструкции формул для проведения каких-либо вычислений. Например, прописываете одно и тоже сложно условие для ячейки или рассчитываете показатели, состоящие из нескольких базовых функций.
И зачастую эта монотонная работа отбирает много времени. Поэтому сегодня давайте рассмотрим, как же в Эксель запрограммировать ваше вычисление в свою собственную функцию, при выборе которой вам надо будет только указать ячейки для вычислений. Все остальное она сделает за вас.
Как это сделать?
Предположим, что у нас есть типовая задача — определять, для какой строки надо применять скидку, а для какой нет. Допустим, мы применяем скидку только для Филиала 2, где сумма больше или равно 4000.
То есть только эти суммы в соседней колонке должны посчитаться за минусом 10%. В обычной жизни мы делали бы это через сложную конструкцию. Наша формула выглядела бы так = ЕСЛИ(И(А2=»Филиал 2″; В2>=4000);В2*0,9;0)
И для примера в уроке это еще не самая громоздкая формула, для расчетов посерьезнее это будет целое полотно. Набирать такое каждый раз очень утомительно. Поэтому давайте автоматизируем этот процесс и зашьем эту формулу в нашу собственную функцию.
В этом нам поможет встроенная среда программирования VBA. Заходим в режим редактирования макросов с помощью клавиш ALT+F4.
В открывшемся окне нажимаем Добавить модуль и в окне написания кода прописываем наш код.
Для нашего урока он будет выглядеть так.
Function СКИДКАФИЛИАЛ(Филиал, Сумма)
If Филиал = "Филиал 2" And Сумма >= 4000 Then
СКИДКАФИЛИАЛ = Сумма * 0.9
Else
СКИДКАФИЛИАЛ = Сумма
End If
СКИДКАФИЛИАЛ = Application.Round(СКИДКАФИЛИАЛ, 2)
End Function
Смысл кода прост. Сначала мы определяем название функции (так мы найдем ее в поиске) и ее аргументы (те ячейки, которые нужны для вычисления). Затем мы прописываем простое условие нашей задачи, аналогично как если бы мы делали с помощью функции ЕСЛИ().
Затем округляем результат функции до двух знаков и закрываем функцию.
Все. Теперь вернемся в Эксель и найдем нашу новую функцию.
Как мы видим, она появилась в списке функций. Теперь нам останется только указать ссылки на ячейки для расчета и все. Мы тут же получим нужный результат.
Скидка рассчиталась только для нужным нам позиций.
Но обратите внимание, что эта функция пока доступна только для текущей книги.
Как добавить функцию для всех книг Excel?
Чтобы она стала доступна для всех книг, сохраняем наш файл в формате надстройки.
Затем заходим в Параметры — Надстройки — Перейти.
И просто ставим галочку около нашего названия.
Готово. Теперь наша пользовательская функция доступна для всех книг Эксель.
О том, как это сделать, смотрите более подробно в бесплатном видео-уроке ниже.
Наши курсы
Также смотрите видео-версию урока.
Если вам понравился урок, то можете поддержать проект по кнопке ниже. Это очень поможет делать для вас больше интересных и полезных выпусков. Спасибо!
Если вам понравился урок, подписывайтесь на канал или группу и ставьте лайки. А также пишите в комментариях свои кейсы или вопросы. Самые интересные мы обязательно разберем.