程式設計程度:初學者
時間長度:10 分鐘
專案類型:自訂函式
目標
- 瞭解解決方案的功能。
- 瞭解 Apps Script 服務在解決方案中的作用。
- 設定指令碼。
- 執行指令碼。
認識這項解決方案
如果您為客戶提供分層定價系統,這個自訂函式可讓您更輕鬆地計算價格的折扣金額。
雖然您可以使用內建函式 SUMPRODUCT
進行分層定價計算,但使用 SUMPRODUCT
比起這個解決方案的自訂函式更複雜,且彈性較低。
運作方式
分層定價模式是指商品或服務的費用會根據購買數量而降低。
舉例來說,假設你有兩個等級,其中一個等級的價格範圍為 $0 至 $500 美元,折扣為 10%,另一個等級的價格範圍為 $501 至 $1,000 美元,折扣為 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
中新增核取方塊,請將儲存格C20
中的tierPrice()
函式更新為=tierPrice(C19,$B$3:$D$6,D20)
。 - 勾選或取消勾選核取方塊,即可重新整理自訂函式結果。
貢獻者
這個範例是由 Google 維護,並由 Google 開發人員專家提供協助。