MAX函数在个税计算实例的应用

作者: 玩Office | 来源:发表于2016-08-22 15:41 被阅读191次

    相信很多做财务的朋友会碰到计算个税的情况。那么我们在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)。希望同学们碰到问题的时候多琢磨,多尝试,灵活应用。也许你还能找到比这更高效更快捷的方法。

    相关文章

      网友评论

        本文标题:MAX函数在个税计算实例的应用

        本文链接:https://www.haomeiwen.com/subject/cpcgsttx.html