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