excel

Excelで割引率を求める計算式|IF関数で条件分岐する方法を実例付き解説

当サイトでは記事内に広告を含みます

Excelで商品の価格計算をする際、割引率を求める必要に迫られることは少なくありません。

特に販売業務や見積書作成では、購入金額や顧客区分によって異なる割引率を適用するケースが頻繁に発生します。手作業で計算すると時間がかかるだけでなく、ミスも起こりやすいでしょう。

そこで活用したいのが、ExcelのIF関数と割引率計算の組み合わせです。条件に応じた割引率を自動的に適用できるため、作業効率が劇的に向上します。

本記事では、割引率の基本的な求め方から、IF関数を使った条件別の割引計算まで、実務ですぐに使える知識を詳しく解説します。初心者の方でも理解できるよう、具体的な数式例を交えながら説明しますので、ぜひ最後までお読みください。

割引率の基本的な計算方法

それではまず割引率の基本的な計算方法について解説していきます。

割引率を求める基本の数式

割引率とは、元の価格から何パーセント値引きされているかを示す割合のことです。

基本的な計算式は非常にシンプルで、以下のように表せます。

割引率(%)=(元の価格 − 割引後の価格)÷ 元の価格 × 100

例:
元の価格:10,000円
割引後の価格:8,000円
割引率 =(10,000 − 8,000)÷ 10,000 × 100 = 20%

Excelで数式を作成する場合、セル参照を使って表現します。例えばA列に元の価格、B列に割引後の価格が入力されている場合、C列に以下の数式を入力すれば割引率が求められるでしょう。

=(A2-B2)/A2*100

この数式をコピーすれば、複数の商品の割引率を一度に計算できます。パーセント表示にしたい場合は、セルの書式設定で「パーセンテージ」を選択し、「*100」を削除した数式にすると見やすくなるでしょう。

割引額から割引率を逆算する方法

実務では、割引額だけが分かっていて割引率を知りたいというケースもあります。

この場合も考え方は同じで、割引額を元の価格で割れば割引率が算出できるのです。

割引率(%)= 割引額 ÷ 元の価格 × 100

例:
元の価格:15,000円
割引額:3,000円
割引率 = 3,000 ÷ 15,000 × 100 = 20%

Excelでの数式は、A列に元の価格、C列に割引額がある場合、以下のようになります。

=C2/A2*100

この方法は、チラシやPOPで「3,000円引き」と表示されているものを、割引率に換算したい時などに便利です。複数の商品を比較する際、割引率で統一すると判断しやすくなるでしょう。

割引率から割引後の価格を計算する方法

逆に、割引率が決まっていて割引後の価格を求める場面も多いはずです。

この計算には二つのアプローチがあります。

方法1:割引額を計算してから引く
割引後の価格 = 元の価格 − (元の価格 × 割引率)

方法2:残存率で直接計算
割引後の価格 = 元の価格 ×(1 − 割引率)

例:20%割引の場合
10,000円 ×(1 − 0.2)= 10,000円 × 0.8 = 8,000円

Excelでは方法2の方がシンプルで、以下のように記述できます。

=A2*(1-D2)

※A2:元の価格、D2:割引率(小数点表示の場合)
※割引率が「20%」と表示されている場合は、そのまま使用可能

この数式を使えば、割引率を変更するだけで即座に割引後の価格が更新されるため、様々なシミュレーションに活用できるでしょう。

IF関数の基本と割引率計算への応用

続いてはIF関数の基本と、割引率計算への応用方法を確認していきます。

IF関数の基本構文と使い方

IF関数は、条件によって異なる結果を返すExcelの代表的な関数です。

基本的な構文は以下の通りとなります。

=IF(条件式, 真の場合の値, 偽の場合の値)

例:
=IF(A2>=10000, “割引対象”, “割引対象外”)

意味:A2セルの値が10,000以上なら「割引対象」、そうでなければ「割引対象外」と表示

条件式には、比較演算子を使って様々な条件を設定できます。

演算子 意味 使用例
= 等しい A2=100
> より大きい A2>1000
< より小さい A2<5000
>= 以上 A2>=10000
<= 以下 A2<=50000
<> 等しくない A2<>0

IF関数を理解することで、購入金額に応じた段階的な割引など、実務で必要な複雑な計算が可能になるのです。

単純な条件分岐での割引率設定

まずは、シンプルな条件での割引率設定を見てみましょう。

例えば「購入金額が10,000円以上なら10%割引、それ以外は割引なし」という条件を設定する場合、以下のように記述します。

=IF(A2>=10000, 0.1, 0)

※A2:購入金額
※結果:10%割引なら0.1、割引なしなら0

この数式で求めた割引率を使って、実際の割引後価格を計算する数式は以下のようになります。

=A2*(1-IF(A2>=10000, 0.1, 0))

または、割引率を別セル(B2)に入れておく方が管理しやすいでしょう。
B2:=IF(A2>=10000, 0.1, 0)
C2:=A2*(1-B2)

後者の方法は、数式が見やすく修正もしやすいというメリットがあります。複雑な計算になるほど、このように段階的に計算する方が管理しやすくなるでしょう。

複数条件を組み合わせた割引率の適用

実務では、複数の条件を組み合わせた割引設定が必要になることも多いはずです。

例えば「会員で、かつ10,000円以上購入した場合のみ15%割引」という条件を設定する場合、AND関数と組み合わせます。

=IF(AND(B2=”会員”, A2>=10000), 0.15, 0)

※A2:購入金額、B2:会員区分
※会員で10,000円以上なら15%割引、それ以外は割引なし

逆に「会員または10,000円以上のいずれかに該当すれば10%割引」という条件なら、OR関数を使います。

=IF(OR(B2=”会員”, A2>=10000), 0.1, 0)
AND関数:すべての条件を満たす場合に真
OR関数:いずれかの条件を満たす場合に真

これらの関数を使いこなせば、顧客区分、購入金額、商品カテゴリーなど、様々な要素を考慮した柔軟な割引計算が実現できるでしょう。

段階的な割引率をIF関数で自動判定する方法

続いては段階的な割引率の自動判定方法を確認していきます。

ネストしたIF関数による多段階割引

購入金額によって割引率が段階的に変わる設定は、IF関数をネスト(入れ子)にすることで実現できます。

例えば以下のような割引ルールがあるとしましょう。

割引ルール:
50,000円以上 → 20%割引
30,000円以上 → 15%割引
10,000円以上 → 10%割引
10,000円未満 → 割引なし

この条件を数式にすると、以下のようになります。

=IF(A2>=50000, 0.2, IF(A2>=30000, 0.15, IF(A2>=10000, 0.1, 0)))

読み方:
1. A2が50,000以上なら20%
2. そうでなければ、A2が30,000以上なら15%
3. そうでもなければ、A2が10,000以上なら10%
4. それ以外は0%

ネストしたIF関数は、上から順番に条件をチェックしていきます。そのため、金額の大きい条件から記述することが重要でしょう。

この数式を使えば、金額を入力するだけで自動的に適切な割引率が適用されます。

IFS関数を使ったスマートな記述方法

Excel 2019以降では、IFS関数という便利な関数が使えます。

IFS関数を使えば、ネストしたIF関数よりも読みやすく、メンテナンスしやすい数式が作成できるのです。

=IFS(A2>=50000, 0.2, A2>=30000, 0.15, A2>=10000, 0.1, A2<10000, 0) または、最後の条件をTRUEにすることで「それ以外」を表現できます。 =IFS(A2>=50000, 0.2, A2>=30000, 0.15, A2>=10000, 0.1, TRUE, 0)

IFS関数の利点は、条件と結果が交互に並ぶため、数式の構造が一目で理解しやすい点です。

方法 メリット デメリット
ネストIF 古いExcelでも使える 複雑になると読みにくい
IFS関数 シンプルで読みやすい Excel 2019以降が必要

使用環境に応じて、適切な方法を選択すると良いでしょう。

VLOOKUP関数との組み合わせテクニック

割引率のパターンが多い場合や、頻繁に変更する可能性がある場合は、VLOOKUP関数と割引率テーブルを組み合わせる方法が効果的です。

まず、別のシートや表の端に割引率テーブルを作成します。

割引率テーブル例(F列〜G列):
F2:0   G2:0
F3:10000 G3:0.1
F4:30000 G4:0.15
F5:50000 G5:0.2

このテーブルを参照する数式は以下の通りです。

=VLOOKUP(A2, $F$2:$G$5, 2, TRUE)

※A2:購入金額
※$F$2:$G$5:割引率テーブルの範囲(絶対参照)
※2:2列目(割引率)を取得
※TRUE:近似一致(A2以下の最大値を検索)

この方法の大きなメリットは、数式を変更せずに割引率テーブルを更新するだけで、すべての計算が自動更新される点です。キャンペーン期間中の特別割引など、一時的な変更にも柔軟に対応できるでしょう。

実務で役立つ割引計算の応用例

続いては実務で役立つ割引計算の応用例を確認していきます。

顧客ランク別の割引率自動適用

顧客管理システムでよく使われるのが、顧客ランクに応じた割引率の自動適用です。

例えば、プラチナ会員20%、ゴールド会員15%、シルバー会員10%、一般会員5%という設定があるとしましょう。

=IF(B2=”プラチナ”, 0.2, IF(B2=”ゴールド”, 0.15, IF(B2=”シルバー”, 0.1, IF(B2=”一般”, 0.05, 0))))

※B2:会員ランク

さらに購入金額による割引と組み合わせる場合は、どちらか有利な方を適用する仕組みも作れます。

会員割引率:C2
金額割引率:D2

最終割引率:=MAX(C2, D2)

意味:会員割引と金額割引のうち、高い方を適用

このように複数の割引ルールを組み合わせることで、顧客にとって最もお得な価格を自動的に提示できるシステムが構築できるでしょう。

期間限定セールの割引計算

期間限定セールなど、日付による条件分岐を組み込んだ割引計算も実務でよく使われます。

例えば、特定期間中のみ追加で5%割引するという設定は、以下のように記述できます。

=IF(AND(TODAY()>=DATE(2025,11,1), TODAY()<=DATE(2025,11,30)), 0.05, 0) 意味:今日の日付が2025年11月1日から11月30日の間なら5%、それ以外は0%

通常の割引率に期間限定割引を加算する場合は、以下のようになります。

通常割引率:C2
期間限定割引率:=IF(AND(TODAY()>=DATE(2025,11,1), TODAY()<=DATE(2025,11,30)), 0.05, 0) 合計割引率:=C2+D2 割引後価格:=A2*(1-E2) ※ただし、割引率の合計が1(100%)を超えないよう注意
重要な注意点:
複数の割引を重ねる場合、割引率を単純に足すと計算が不正確になることがあります。
正確には「(1-割引率1)×(1-割引率2)」で計算すべきケースもあるため、社内ルールを確認しましょう。

期間の管理を別テーブルで行えば、さらに柔軟な運用が可能になります。

まとめ買い割引の自動計算システム

数量に応じた割引、いわゆるボリュームディスカウントの設定も、IF関数で簡単に実装できます。

例えば、10個以上で5%、50個以上で10%、100個以上で15%割引という条件を設定しましょう。

=IFS(E2>=100, 0.15, E2>=50, 0.1, E2>=10, 0.05, TRUE, 0)

※E2:購入数量

単価と数量から、割引適用後の合計金額を求める完全な数式は以下の通りです。

前提:
A2:商品名
B2:単価
E2:数量

割引率(C2):=IFS(E2>=100, 0.15, E2>=50, 0.1, E2>=10, 0.05, TRUE, 0)
小計(D2):=B2*E2
割引額(F2):=D2*C2
合計金額(G2):=D2-F2

または1つの数式で:=B2*E2*(1-IFS(E2>=100, 0.15, E2>=50, 0.1, E2>=10, 0.05, TRUE, 0))

この仕組みを見積書テンプレートに組み込めば、数量を入力するだけで自動的に最適な価格が表示される便利なツールが完成します。

顧客との商談中にその場で様々なパターンをシミュレーションできるため、営業効率も大幅に向上するでしょう。

まとめ

Excelでの割引率計算は、基本的な数式から始まり、IF関数と組み合わせることで高度な自動化が実現できます。

単純な割引率の算出には「(元の価格−割引後価格)÷元の価格」という基本式を使い、IF関数を活用すれば購入金額や顧客区分に応じた段階的な割引を自動適用できるのです。ネストしたIF関数やIFS関数、VLOOKUP関数など、用途に応じた適切な関数を選択することで、より効率的な計算システムが構築できるでしょう。

実務では、顧客ランク別割引、期間限定セール、まとめ買い割引など、複数の条件を組み合わせた複雑な計算が必要になります。しかし、本記事で紹介した方法を応用すれば、これらすべてを自動化し、正確かつ迅速な価格計算が可能になるはずです。