编码水平:初级
时长:10 分钟
项目类型:自定义函数
目标
- 了解解决方案的功能。
- 了解 Apps 脚本服务在解决方案中的作用。
- 设置脚本。
- 运行脚本。
关于此解决方案
如果您为客户提供分级定价系统,则此自定义函数可让您更轻松地计算价格的折扣金额。
虽然您可以使用内置函数 SUMPRODUCT
进行分层定价计算,但与此解决方案的自定义函数相比,使用 SUMPRODUCT
更复杂且灵活性更低。
运作方式
分层定价模式是指商品或服务的费用会根据购买的数量而降低。
例如,假设您有两个层级,一个层级的价格范围为 0-500 美元,可享受 10% 的折扣;另一个层级的价格范围为 501-1,000 美元,可享受 20% 的折扣。如果您需要计算折扣的总价为 700 美元,该脚本会将前 500 美元乘以 10%,将剩余的 200 美元乘以 20%,得出总折扣为 90 美元。
对于给定的总价,脚本会在分层价格表中循环遍历指定层级。对于总价格中属于某个层级的每个部分,该部分都会乘以相应层级的百分比值。结果是每个层级的计算结果之和。
Apps 脚本服务
此解决方案使用以下服务:
- 电子表格服务 - 接受给定的值,并计算要将该值的哪一部分乘以每个层级的折扣百分比。
前提条件
如需使用此示例,您需要满足以下前提条件:
- Google 账号(Google Workspace 账号可能需要管理员批准)。
- 可访问互联网的网络浏览器。
设置脚本
点击下方的按钮,复制分级定价自定义函数电子表格。此解决方案的 Apps 脚本项目已附加到电子表格中。
制作副本
运行脚本
- 在您复制的电子表格中,第 16 行的表格显示了软件即服务 (SaaS) 产品的价格计算示例。
- 如需计算折扣金额,请在单元格
C20
中输入=tierPrice(C19,$B$3:$D$6)
。最终价格更新位于单元格C21
中。如果您所在的地区使用英文逗号作为小数点,可能需要输入=tierPrice(C19;$B$3:$D$6)
。
查看代码
如需查看此解决方案的 Apps 脚本代码,请点击下方的查看源代码:
查看源代码
Code.gs
修改
您可以根据需要随意修改自定义函数。以下是手动刷新自定义函数结果的可选补充。
刷新缓存结果
与内置函数不同,Google 会缓存自定义函数,以优化性能。因此,如果您更改自定义函数中的某些内容(例如正在计算的值),系统可能不会立即强制更新。如需手动刷新函数结果,请按以下步骤操作:
- 如需向空白单元格添加复选框,请依次点击插入 > 复选框。
- 将包含复选框的单元格添加为自定义函数的额外参数。例如,如果您向单元格
D20
添加复选框,请将单元格C20
中的tierPrice()
函数更新为=tierPrice(C19,$B$3:$D$6,D20)
。 - 选中或取消选中相应复选框,即可刷新自定义函数结果。
贡献者
此示例由 Google 在 Google 开发者专家的帮助下维护。