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