В этой статье мы рассмотрим создание функции для расчета комиссионных по объему продаж одного из продавцов. Расчеты будут базироваться на следующей таблице ставок комиссионных:
Это таблица, в которой ставки комиссионных изменяются нелинейно в зависимости от общего объема продаж за месяц. Сотрудники, достигающие более высоких объемов продаж, получают более высокие комиссионные.
Существует несколько способов рассчитать комиссионные для различных объемов продаж с использованием инструментов, доступных в Excel. Давайте рассмотрим несколько из них:
- Длинная формула: Вы можете создать длинную формулу в Excel для расчета комиссионных на основе таблицы ставок. Это требует написания довольно объемной формулы и может быть не очень удобным для обслуживания в будущем.
- Использование функций Excel: Для расчета комиссионных вы можете воспользоваться функцией из категории ссылок и массивов, такой как функция ВПР(). Этот метод не требует программирования на VBA и обеспечивает более гибкий и легко читаемый подход.
- Создание пользовательской функции: Вы также можете создать пользовательскую функцию в Excel, что позволит вам рассчитывать комиссионные без необходимости использовать функции ссылок и массивов. Этот метод может быть особенно полезен, если вам нужно сделать процесс более автоматизированным и удобным.
После внесения функции КОМИССИОННЫЕ в модуль VBA, вы можете использовать её в формулах на рабочем листе Excel или вызывать из других процедур VBA. Это приносит значительные удобства при работе с данными и автоматизации расчетов.
Давайте рассмотрим пример использования этой функции в формуле на листе Excel. Предположим, у нас есть объем продаж 30 000, и мы хотим рассчитать комиссионные, используя функцию КОМИССИОННЫЕ. Введя следующую формулу в ячейке, мы получим результат 3 600 (объем продаж 30 000 соответствует ставке комиссионных 12%):
=КОМИССИОННЫЕ(30000)
Это позволяет довольно легко и быстро рассчитывать комиссионные на рабочем листе, просто указав необходимый объем продаж и используя созданную пользовательскую функцию.
Даже если на рабочем листе не требуется использовать пользовательские функции напрямую, их создание всё равно значительно упрощает программирование на VBA. Это особенно полезно, когда вы хотите создать процедуры, которые выполняют сложные расчеты на основе объема продаж. Процедуры VBA могут легко вызывать созданную функцию для расчёта комиссионных без необходимости дублировать логику расчета. Давайте рассмотрим пример маленькой процедуры ЗапросПродаж:
Эта процедура сначала отображает диалоговое окно для ввода объема продаж, затем, используя функцию КОМИССИОННЫЕ, рассчитывает комиссионные и выводит результат в окне сообщения. Это делает процесс ввода данных и расчета комиссионных более удобным и эффективным.
Данная процедура работает корректно, но не верх совершенства. В следующей статье давайте улучшим версию процедуры ЗапросПродаж.