excel算个税的公式是怎么写的

如题所述

我们知道,最新的个人所得税起征点是 3500元,税率从3%到45%,分有7个等级,为提高计算速度,与不同税率相对应有7个速算扣除数,如下表所示:

级数    含税级距    不含税级距    税率    速算    

(%)    扣除数    

1    不超过1500元的    不超过1455元的    3    0    

2    超过1500元至4500元的部分    超过1455元至4155元的部分    10    105    

3    超过4500元至9000元的部分    超过4155元至7755元的部分    20    555    

4    超过9000元至35000元的部分    超过7755元至27255元的部分    25    1005    

5    超过35000元至55000元的部分    超过27255元至41255元的部分    30    2755    

6    超过55000元至80000元的部分    超过41255元至57505元的部分    35    5505    

7    超过80000元的部分    超过57505元的部分    45    13505    

计算方法:个人所得税 = 扣除起征点的纳税金额 * 对应区间税率 - 速算扣除数

1、为了计算个人所得税,首先想到的就是用IF公式,分7个区间进行判断计算,公式老长了,如下所示:

=IF(J50<=0, 0, IF(J50<=1500, J50*3%, IF(J50<=4500, J50*10%-105, IF(J50<=9000, J50*20%-555, IF(J50<=35000,J50*25%-1005, IF(J50<=55000,J50*30%-2755, IF(J50<=80000, J50*35%-5505, J50*45%-13505)))))))

其中J50存放的是纳税金额,即扣除起征点3500后剩下的金额。

2、有人巧用MAX函数,发明了里一个简洁公式,公式如下:

=MAX(J50*{3,10,202,25,30,35,45}% - {0,105,555 ,1005,2755,5505,13505}, 0)

{0.03,0.1,0.2,0.25,0.3,0.35,0.45}% 是个税7个区间的税率,是一个数组;
{0,105,555 ,1005,2755,5505,13505}是7个区间的速算扣除数,也是一个数组;

数组计算后得到7个数,因为存在了纳税额<0的情况,即工资不满3500的,就在MAX函数中添了一个“0”的值,保证计算税额的公式中J50为负数时,用MAX求最大不会出现负数。

J50*{3,10,202,25,30,35,45}% - {0,105,555 ,1005,2755,5505,13505}是纳税额*各级个税税率 - 应扣额后的数字。

如果税率对应的级别<=纳税额时,税率越大税额越大,符合所缴税款和所得相匹配的原理。

如果税率对应的级别>纳税额时,税率越大税额越小,因为扣减了超额的扣除数。

这样保证了,缴税数组里最大的那个一定是最符合相应税率的。

将公式中的公因子5提出来,可以简化一下公式(其实就是将数组中的数变小一点):

=5*MAX(J50*{0.6,2,4,5,6,7,9}% - {0,21,111,201,551,1101,2701}, 0)

3、上面的J50是扣除3500之后的纳税金额,如果加上这3500,计算公式是什么样呢?

假定J50=K50-3500,则K50是含起征点的纳税金额,即应发工资扣除三险一金(养老保险、医疗保险、失业保险、住房公积金)之后的余额,公式做如下变换:

=5*MAX(J50*{0.6,2,4,5,6,7,9}% - {0,21,111,201,551,1101,2701}, 0)

=5*MAX((K50-3500)*{0.6,2,4,5,6,7,9}% - {0,21,111,201,551,1101,2701}, 0)

=5*MAX(K50*{0.6,2,4,5,6,7,9}% - 3500*{0.6,2,4,5,6,7,9}% - {0,21,111,201,551,1101,2701}, 0)

=5*MAX(K50*{0.6,2,4,5,6,7,9}% - {21,70,140,175,210,245,315} - {0,21,111,201,551,1101,2701}, 0)

=5*MAX(K50*{0.6,2,4,5,6,7,9}% - {21,91,251,376,761,1346,3016} , 0)

4、可以在外面套一个ROUND函数,四舍五入到2位小数,即:

=ROUND(5*MAX(J50*{0.6,2,4,5,6,7,9}% - {0,21,111,201,551,1101,2701}, 0), 2)

=ROUND(5*MAX(K50*{0.6,2,4,5,6,7,9}% - {21,91,251,376,761,1346,3016} , 0), 2)

其中J50和K50的关系为J50=K50-3500

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-02
如果收入在B列,个税起征点在C列,那么在D2单元格输入以下公式,得到应税部分
=MAX(B2-C2,0)
公式表示:在B2-C2和0之间取最大值,即收入小于500的不交个人所得税。
在E2单元格输入以下公式,得到个人所得税金额部分
=ROUND(IF(D2<500,D2*0.05,IF(D2<2000,D2*0.1-25,D2*0.15-125)),2)
公式表示:根据应税部分的数额,对应执行相应的税率,超出小数点后面三位的结果保留两位有效数字。
公式也可以直接由收入得到个人所得税,输入
=ROUND(IF(MAX(B2-500,0)<500,MAX(B2-500,0)*0.05,IFMAX(B2-500,0)<2000,MAX(B2-500,0)*0.1-25,MAX(B2-500,0)*0.15-125)),2)
或者不需要使用IF函数嵌套,使用LOOKUP函数
=LOOKUP(MAX(B2-500,0),{0,500,2000},MAX(B2-500,0)*{0.05,0.1,0.15}-{0,25,125})
可以增加更多的嵌套,且公式更加简洁,层次清楚。本回答被网友采纳
第2个回答  2016-12-13
如税前在A1,用:
=ROUND(MAX((A1-3500)*{0.03,0.1,0.2,0.25,0.3,0.35,0.45}-{0,105,555,1005,2755,5505,13505},0),2)本回答被提问者采纳
第3个回答  2016-12-13
=ROUND(MAX(IF(A1-3500>{0,1500,4500,9000,35000,55000,80000},{0,105,555,1005,2755,5505,13505}+(A1-3500-{0,1500,4500,9000,35000,55000,80000})*{0.03,0.1,0.2,0.25,0.3,0.35,0.45},0)),2)
相似回答