相信很多做财务的朋友会碰到计算个税的情况。那么我们在Excel上应该如何计算呢?需要用到哪些函数和公式?
计算公式
应纳税额=(工资薪金所得 -“五险一金”)×适用税率-速算扣除数
个税免征额是3500,使用超额累进税率的计算。
个税计算方案单纯用函数,至少有以下几种:
IF函数,VLOOKUP函数,MATCH函数+INDEX函数,MAX函数
那么我们应该选择哪一种函数计算呢?
1.IF函数
IF函数在EXCEL中很常用,逻辑简单 ,易用。但是个税按照七级累进税率进行,如果用IF函数计算,需要嵌套6层IF函数。虽然IF函数本身简单,但是嵌套6层就变得不复杂了,容易出错。我们应尽量避免多重IF函数嵌套,这是一个基本应用原则。
2.VLOOKUP函数
这个函数也很常用。在这里需要查找对应税率和速算扣除数,得先加辅助列/辅助行,然后调用2次VLOOKUP,找到对应的税率和速算扣除数后再做运算,稍复杂。
3.MATCH函数+INDEX函数
同样也要加辅助列/辅助行,然后用MATCH函数找到相应税率所在的位置,然后根据返回的“位置”数值,利用INDEX函数找到税率和速算扣除数。最后再来计算应缴税额。组合了两个函数,比起VLOOKUP还要复杂些。
4.MAX函数
这里我要重点说的就是MAX函数,表面看起来MAX函数只是一个很简单的比较取最大值函数。但是如果我们加入“数组”的概念就非常有意思了。
无论是IF,VLOOKUP,还是MATCH+INDEX,逻辑都是先根据工资数找到对应的税率和速算扣除数,然后进行运算。
但是用MAX函数,我们不妨换一种逻辑。
来,先不管对应的税率和速算扣除数应该选哪组,我先按照所有税率分别算出一个结果来。然后,通过比较每一个结果,找到合适的。而恰巧,我们又发现,所有的结果里面,最大值对应的税率就是正确的(对此有疑问的同学可以推算验证一下)。
MAX函数在个税计算中的应用=MAX((G3-3500)*{0.03;0.1;0.2;0.25;0.3;0.35;0.45}-{0;105;555;1005;2755;5505;13505},0)
注释:
1)公式在H3输入;
2)G3为扣除“五险一金后工资”;
3){0.03;0.1;0.2;0.25;0.3;0.35;0.45}为税率数组;
4){0;105;555;1005;2755;5505;13505}为对应的速算扣除数数组。
(这里不展开讲数组,我之前专门写过一篇文章,让你秒懂数组的原理。)
这个公式的意思的是,扣除了五险一金之后的工资,减去个税起征点3500,然后乘以税率,再减去速算扣除数。而用大括号{}包起来的代表数组,所以
(G3-3500)*{0.03;0.1;0.2;0.25;0.3;0.35;0.45}-{0;105;555;1005;2755;5505;13505}返回的也是一个数组,共有7个数值(可能有正数和负数,可能全部为正数,还有可能全部为负数)。但是我们知道应缴税额不能为负数对吧。所以,最后通过MAX函数把这七个数值,额外加一个0值一起做比较,取最大值。
也就是说,如果得出的结果全部是负数,那么返回的最大值就是0值(免征个税)。
计算个税,至少有以上四种方法(其实还有VBA)。希望同学们碰到问题的时候多琢磨,多尝试,灵活应用。也许你还能找到比这更高效更快捷的方法。