段階表から歩合を出す(近似一致の INDEX MATCH)
テストケース
1
2
3
リセット
提出
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。
テストケース
1
2
3
リセット
提出
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。
問題
問題文
歩合は一律ではありません。F2:G5 の段階表が売上の下限と率を対応させており、担当の売上合計は B2 にあります。歩合額(売上 × その段階の率)を Commission セル D2 に入れてください。
段階は式で探します。下限ちょうどの売上はその段階の率が適用され、1つ下の段階にはなりません。
問題のデータ
表でデータ全体を見る(選択・コピーできます)
| A | B | D | F | G | |
|---|---|---|---|---|---|
| 1 | Rep | Sales | Commission | From | Rate |
| 2 | Ben | 12000 | 0 | 0.03 | |
| 3 | Ada | 4200 | 5000 | 0.05 | |
| 4 | Cleo | 31000 | 15000 | 0.08 | |
| 5 | 30000 | 0.11 |
ポイント解説
MATCH の3つ目の引数が照合の種類です。0 は完全一致、1 は「以下で最大」を返し、段階表はこちらが必要です。範囲は昇順である必要があり、返るのは位置なので INDEX で率に変換します。VLOOKUP の TRUE なら1回で済みます。
解き方のヒント
回答は D2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。
- 対象セルは D2
- 段階表は昇順なので近似一致を使う
- MATCH が F2:F5 内の行を返し、INDEX が率に変える
- 形:=B2*INDEX(?, MATCH(?, ?, ?))
模範解答
模範解答を表示(2 通り・まずは自分で試してみましょう)
方法1:INDEX と近似 MATCH
=B2*INDEX($G$2:$G$5, MATCH(B2, $F$2:$F$5, 1))
12000 は 5000 の下限より上、15000 より下なので MATCH は2行目(5%)を返し、12000 × 5% = 600 です。下限ちょうどの 15000 は 8% になります。
方法2:VLOOKUP と TRUE
=B2*VLOOKUP(B2, $F$2:$G$5, 2, TRUE)
4つ目の引数 TRUE が近似一致です。売上を超えない最大の下限を探し、2列目(率)を返します。表が昇順でないと、誤った段階を静かに返します。
関数ガイド
よくある質問
「段階」を探すにはどうしますか?
照合の種類に 1 を使います:MATCH(売上, 下限, 1) または VLOOKUP(売上, 表, 2, TRUE)。売上を超えない最大の下限を返すので、表は昇順である必要があります。
近似一致で違う率が出るのはなぜ?
表が昇順でないか、売上が最初の下限を下回っているためです。どちらもエラーにならず、想定外の結果が返ります。