昨天看到一个提成问题:
如下图所示,要求根据EF列的提成规则和B列销售额,在C列计算提成。

有不少同学一看,这用IF判断不就行了? 这个问题没这么简单。这是一个超额累计的问题。
以第一个数字3315为例,需要把3315根据E列拆分成多个值,每段值根据不同的比率计算,最后累计在一起。

是不是看上去有点眼熟?嘿嘿,个税公式不就是这么算的吗?但个税有提前算好的速算扣除数,这里如果按个税方法也需要先计算好速扣除数,如果兰色问:速算扣除数怎么算,估计大部分人都蒙了吧。
但如果每个人的销售额都这样拆分开手工算,估计要算一天了吧。
嘿嘿,当然不用,兰色今天分享一个你在网上都很难搜到的公式。
首先需要做一个辅助表,第一列是区间的边界点数字,第二列则是提成率的差异值(第一个比率引用上表第一个值,后面则需要计算差异值。

然后就可以设置公式了
=SUM(TEXT(B2-E$10:E$15,"0;!0")*F$10:F$15)

估计很多同学看不懂这个公式的原理,兰色就把公式步骤拆分开
首先用目标销售额减去区间边界点,可以计算每个区间的差异
=I8-E10:E15

用Text函数把负值变为0,
=TEXT(I8-E10:E15,"0;!0")
注:"0;!0"44中第一个0是数字占位符,作用是正数正常显示,分号后"!0",在0前加一个感叹号,则是把负数强制转换为数字0

最后乘上差异百分比,则是逐个区间补前面区间提成不足。比如第一个区让1200全部按2%算,肯定少了,少了的部分需要用后面区间来补齐。
=TEXT(I8-E10:E15,"0;!0")*F10:F15

最后加在一起,就是最终的计算公式
=SUM(TEXT(B2-E$10:E$15,"0;!0")*F$10:F$15)
如果你不想要辅助列,可以按F9转换为数组,放在公式中。

如果想让公式短一些,可以简化一下
=SUM(TEXT(B2-{0;6;10;18;24;30}/1%,"0;!0")*{2;1;1;1;1;1}%)
如果你在网上搜超额累计公式,会搜到非常复杂的算法,本文公式基本上搜不到的,所以同学们一定要收藏起来