コーディング レベル: 初級
所要時間: 10 分
プロジェクト タイプ: カスタム関数
目標
- ソリューションの機能について理解する。
- ソリューション内での Apps Script サービスの役割を理解する。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
お客様に段階的な料金システムを提供している場合は、このカスタム関数を使用すると、価格の割引額を簡単に計算できます。
組み込み関数 SUMPRODUCT
を使用して段階的な料金計算を行うこともできますが、SUMPRODUCT
を使用すると、このソリューションのカスタム関数よりも複雑になり、柔軟性が低下します。
仕組み
段階的な料金モデルとは、購入する数量に応じて商品やサービスの費用が下がることです。
たとえば、2 つの階層があるとします。1 つは 0 ~ 500 ドルの範囲で 10% 割引、もう 1 つは 501 ~ 1,000 ドルの範囲で 20% 割引です。割引を計算する必要がある合計金額が $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 によって管理されています。