按阶梯表算佣金(近似匹配 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 不会报错,而是返回意料之外的结果。