依級距表算佣金(近似比對 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。
級距必須用公式查——剛好落在門檻上的業務適用該級距的費率,不是低一階。
題目資料
用表格檢視整份資料(可選取、可複製)
| 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 的第三個參數決定比對方式:0 是完全相符,1 會找出「小於或等於」的最大值,這正是級距表要的行為。它要求表要遞增排序,而且回傳的是位置——所以要再用 INDEX 換成費率。VLOOKUP 搭配 TRUE 可以一步完成。
解題思路
答案寫在 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% 而不是 5%。
解法 2:VLOOKUP 搭配 TRUE
=B2*VLOOKUP(B2, $F$2:$G$5, 2, TRUE)
第四個參數 TRUE 就是近似比對:VLOOKUP 找出不超過業績的最大門檻,回傳第 2 欄(費率)。表格沒有保持排序的話,它會安靜地回傳錯的級距。
函數指南
常見問題
怎麼查「級距」而不是查完全相符的值?
用比對方式 1:MATCH(業績, 門檻, 1) 或 VLOOKUP(業績, 表, 2, TRUE)。兩者都會找出不超過業績的最大門檻,所以表必須遞增排序。
為什麼近似比對拿到錯的費率?
可能是表格沒有遞增排序,或業績低於第一個門檻——這兩種情況 Excel 不會報錯,而是回傳意料之外的結果。