В этом практическом уроке мы рассчитаем процент премии менеджера в зависимости от количества заказов. Научимся пользоваться оконными функциями и прописывать функцию условия.
Сегодня давайте рассмотрим один очень популярный в сфере продаж кейс – это расчет бонуса менеджеров или дополнительная скидка клиента в зависимости от количества заказов. Причем, не просто количества, а именно порядкового номера заказа. Например, за первый заказ премия 10%, за второй и третий 5%, а далее 3%.
На первый взгляд кажется, что сделать это непросто, но это не так. В этом нам помогут оконные функции и функция условия. Допустим, у нас есть уже готовый датасет или выгрузка из системы с данными о сумме продаж и фамилии менеджера.
Для начала нам потребуется создать пользовательское поле с формулой, которая будет рассчитывать порядковый номер заказа. И делать это будет именно в пределах менеджера. Тут нам поможет оконная функция накопительного итога RSUM(). Она будет накапливать порядковый номер строки, начиная с 1.
RSUM(MIN(1) WITHIN [Менеджер])
Затем прописываем условие для процента. Если номер заказа = 1, тогда скидка будет 10%, если 2 или 3, то 5%, и так далее.
IF [Номер заказа]=1 THEN 0.10
ELSEIF [Номер заказа]=2 OR [Номер заказа]=3 THEN 0.05
ELSE 0.03
END
И теперь нам останется рассчитать сумму премии в зависимости от расчситанного процента.
[Процент]*[Сумма продажи]
Готово! Но тут стоит учитывать одну особенность работы оконных функций. Они производят расчет только по видимым на экране строкам. То есть, если какие-то продажи вы спрячете фильтром, то они уже не возьмутся в расчет порядкового номера, а значит процент рассчитается иначе.
А как именно сделать это в DataLens, смотрите в подробном видеоуроке ниже.
Видео версию данного урока можно посмотреть тут.