今天教一个阶梯计算的套路公式,通常可以应用于计算阶梯式电费、个人所得税、阶梯式奖金分成等等。
案例:
规则如下,当销售额分别达到不同区间时,捐助的比例逐渐递增:
不超过 50000 元的部分:捐助比例 5%
超过 50000 元至 100000 元的部分:捐助比例 10%
超过 100000 元至 150000 元的部分:捐助比例 20%
超过 150000 元至 200000 元的部分:捐助比例 30%
超过 200000 元至 300000 元的部分:捐助比例 40%
超过 300000 元的部分:捐助比例 50%
根据上述规则,计算出下图 1 的 E 列每个金额分别需要捐助多少。
效果如下图 2 所示。
解决方案:
1. 在任意空白区域将数据表整理如红框区域所示:
增量部分的公式为每一档减去上一档的差值;
2. 在 F2 单元格中输入以下公式 --> 下拉复制公式:
=SUM(TEXT((E2-$B$10:$B$15),"0;\0")*($C$10:$C$15))
为了帮助大家清楚理解整个公式,我把每一段公式的结算结果显示给大家看。
公式释义:
E2-$B$10:$B$15:将 E2 单元格的值分别与区域 $B$10:$B$15 内的每个值相减,结果为 {69128;19128;-30872;-80872;-130872;-230872};
TEXT(...,"0;\0"):
上述结果大家也看到了,有负数;外面套上 text 函数的作用就是将负数都变成 0;
参数中分号隔开的两段分别代表正数和负数的格式;0 表示显示数值本身,“\”或“!”表示强制显示符号后面的字符;因此这里的公式表示正数不变,负数就强制变为 0 值;
选中 text 公式部分,按 F9,就可以看到下图 2 的计算结果,负数全都变成了 0;
这段公式的目的是计算出落在每个级数区间,以及大于该区间的所有值;比如第一个结果是 69128,这部分金额的捐助比例包含了 5% 以及 5% 以上,我们就全部列出;第二个结果是 19128,这部分值的比例在 10%;超出 10% 的没有了,因此截止至此;
...*($C$10:$C$15):将 text 函数的结算结果与 C 列的每一档比率增量相乘;为什么不是乘以捐助比例本身,而是它的增量呢?因为非增量的部分,已经在前面一档中计算进去了;
SUM(...):最后用 sum 函数对这每一档的数值求和,就是最终结果