コーディング レベル: 初級
所要時間: 10 分
プロジェクト タイプ: カスタム関数
目標
- ソリューションの機能を理解します。
- ソリューション内で Apps Script サービスが何を行うかを理解します。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
顧客に段階的な料金体系を提供している場合、このカスタム関数を使用すると、価格の割引額を簡単に計算できます。
組み込み関数 SUMPRODUCT
を使用して段階的な料金計算を行うこともできますが、SUMPRODUCT
を使用するよりも、このソリューションのカスタム関数を使用する方が複雑ではなく、柔軟性も高くなります。
仕組み
段階的料金モデルとは、購入した数量に応じて商品やサービスの費用が下がるモデルのことです。
たとえば、0 ~ 500 ドルの範囲で 10% 割引になる階層と、501 ~ 1,000 ドルの範囲で 20% 割引になる階層の 2 つがあるとします。割引を計算する必要がある合計価格が $700 の場合、スクリプトは最初の $500 に 10% を掛け、残りの $200 に 20% を掛けて、合計割引額 $90 を算出します。
指定された合計金額について、スクリプトは階層別料金表で指定された階層をループ処理します。合計価格のうち、階層に該当する部分ごとに、その部分に階層に関連付けられたパーセント値を掛けます。結果は、各階層の計算の合計です。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- スプレッドシート サービス - 指定された値を取得し、各階層の割引率を乗算する値の割合を計算します。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
下のボタンをクリックして、階層別料金設定のカスタム関数スプレッドシートのコピーを作成します。このソリューションの Apps Script プロジェクトは、スプレッドシートに添付されています。
コピーを作成
スクリプトを実行する
- コピーしたスプレッドシートの 16 行目の表には、Software as a Service(SaaS)プロダクトの料金計算例が示されています。
- 割引額を計算するには、セル
C20
に=tierPrice(C19,$B$3:$D$6)
と入力します。最終的な価格がセルC21
に更新されます。小数点にカンマを使用する地域では、代わりに=tierPrice(C19;$B$3:$D$6)
を入力する必要がある場合があります。
コードを確認する
このソリューションの Apps Script コードを確認するには、以下の [ソースコードを表示] をクリックします。
ソースコードを表示
コード.gs
修正
カスタム関数は、必要に応じて何度でも編集できます。以下は、カスタム関数の結果を手動で更新するためのオプションの追加です。
キャッシュに保存された結果を更新する
組み込み関数とは異なり、Google はパフォーマンスを最適化するためにカスタム関数をキャッシュに保存します。そのため、カスタム関数内で計算される値などの変更を行っても、すぐに更新が強制的に行われないことがあります。関数結果を手動で更新する手順は次のとおりです。
- [挿入] > [チェックボックス] をクリックして、空のセルにチェックボックスを追加します。
- チェックボックスを含むセルをカスタム関数の追加パラメータとして追加します。たとえば、セル
D20
にチェックボックスを追加する場合は、セルC20
のtierPrice()
関数を=tierPrice(C19,$B$3:$D$6,D20)
に更新します。 - チェックボックスをオンまたはオフにして、カスタム関数の結果を更新します。
寄稿者
このサンプルは、Google デベロッパー エキスパートの協力を得て Google が管理しています。