Уровень владения программированием : начинающий
Продолжительность : 10 минут
Тип проекта : Пользовательская функция
Цели
- Поймите, для чего предназначено это решение.
- Разберитесь, что делают службы Apps Script в рамках данного решения.
- Настройте скрипт.
- Запустите скрипт.
Об этом решении
Если вы предлагаете своим клиентам многоуровневую систему ценообразования, эта настраиваемая функция упростит расчет скидок для ваших цен.
Хотя для расчета многоуровневой цены можно использовать встроенную функцию SUMPRODUCT , SUMPRODUCT применение сложнее и менее гибко, чем использование пользовательской функции данного решения.


Как это работает
Многоуровневая модель ценообразования означает, что стоимость товаров или услуг снижается в зависимости от количества приобретаемых товаров или услуг.
Например, представьте, что у вас есть два уровня цен: один от 0 до 500 долларов со скидкой 10%, а другой от 501 до 1000 долларов со скидкой 20%. Если общая цена, для которой нужно рассчитать скидку, составляет 700 долларов, скрипт умножает первые 500 долларов на 10%, а оставшиеся 200 долларов — на 20%, в результате чего общая скидка составит 90 долларов.
Для заданной общей цены скрипт перебирает указанные уровни в таблице ценообразования. Для каждой части общей цены, попадающей в определенный уровень, эта часть умножается на соответствующее процентное значение уровня. Результатом является сумма вычислений для каждого уровня.
Сервисы Apps Script
Данное решение использует следующую службу:
- Сервис электронных таблиц — берет заданное значение и вычисляет, какую часть этого значения нужно умножить на процент скидки для каждого уровня.
Предварительные требования
Для использования этого примера необходимы следующие условия:
- Для работы потребуется учетная запись Google (для учетных записей Google Workspace может потребоваться подтверждение администратора).
- Веб-браузер с доступом в интернет.
Настройте скрипт
Нажмите кнопку ниже, чтобы создать копию электронной таблицы с пользовательской функцией ценообразования по уровням . Проект Apps Script для этого решения прикреплен к электронной таблице.
Сделать копию
Запустите скрипт
- В скопированной вами электронной таблице в строке 16 показан пример расчета цены для продукта «Программное обеспечение как услуга» (SaaS).
- Для расчета суммы скидки в ячейке
C20введите=tierPrice(C19,$B$3:$D$6). Итоговая цена обновится в ячейкеC21. Если вы используете десятичные запятые, возможно, вам потребуется ввести=tierPrice(C19;$B$3:$D$6).
Просмотрите код
Чтобы просмотреть код Apps Script для этого решения, нажмите «Просмотреть исходный код» ниже:
Просмотреть исходный код
Code.gs
Модификации
Вы можете редактировать пользовательскую функцию по своему усмотрению в соответствии со своими потребностями. Ниже представлено дополнительное средство для ручного обновления результатов работы пользовательской функции.
Обновить кэшированные результаты
В отличие от встроенных функций, Google кэширует пользовательские функции для оптимизации производительности. Поэтому, если вы измените что-либо в своей пользовательской функции, например, вычисляемое значение, обновление может произойти не сразу. Чтобы обновить результат функции вручную, выполните следующие действия:
- Чтобы добавить флажок в пустую ячейку, нажмите «Вставка» > «Флажок» .
- Добавьте ячейку с флажком в качестве дополнительного параметра пользовательской функции. Например, если вы добавите флажок в ячейку
D20, обновите функциюtierPrice()в ячейкеC20на=tierPrice(C19,$B$3:$D$6,D20). - Установите или снимите флажок, чтобы обновить результаты работы пользовательской функции.
Авторы
Данный пример поддерживается компанией Google при содействии экспертов-разработчиков Google.