级数 |
全月应纳税所得额 |
税率 (%) |
速算扣除数 ( 元 ) |
1 |
不超过 500 元的部分 |
5 |
0 |
2 |
超过 500 元至 2000 元的部分 |
10 |
25 |
3 |
超过 2000 元至 5000 元的部分 |
15 |
125 |
4 |
超过 5000 元至 20000 元的部分 |
20 |
375 |
5 |
超过 20000 元至 40000 元的部分 |
25 |
1375 |
6 |
超过 40000 元至 60000 元的部分 |
30 |
3375 |
7 |
超过 60000 元至 80000 元的部分 |
35 |
6375 |
8 |
超过 80000 元至 100000 元的部分 |
40 |
10375 |
9 |
超过 100000 元的部分 |
45 |
15375 |
A |
B |
C |
D |
E |
F |
G |
H |
I | |||||||||||||||||||||||||||||||||||||||||
1 |
|
级数 |
累进区间 |
下限 |
税率 |
扣除数 | |||||||||||||||||||||||||||||||||||||||||||
2 |
1 |
<500 |
0 |
5% |
0 | ||||||||||||||||||||||||||||||||||||||||||||
3 |
2 |
500-2000 |
500 |
10% |
25 | ||||||||||||||||||||||||||||||||||||||||||||
4 |
3 |
2000-5000 |
2000 |
15% |
125 | ||||||||||||||||||||||||||||||||||||||||||||
5 |
4 |
5000-20000 |
5000 |
20% |
375 | ||||||||||||||||||||||||||||||||||||||||||||
6 |
5 |
20000-40000 |
20000 |
25% |
1375 | ||||||||||||||||||||||||||||||||||||||||||||
7 |
6 |
40000-60000 |
40000 |
30% |
3375 | ||||||||||||||||||||||||||||||||||||||||||||
8 |
7 |
60000-80000 |
60000 |
35% |
6375 | ||||||||||||||||||||||||||||||||||||||||||||
9 |
8 |
80000-100000 |
80000 |
40% |
10375 | ||||||||||||||||||||||||||||||||||||||||||||
10 |
9 |
>100000 |
100000 |
45% |
15375 |
【方案三】——数组公式版:
B2: {=IF(A2<>"",ROUND(IF(AND(A2>0,A2<=1600),0,SUM(IF((A2-1600>={0,500,2000,5000,20000,40000,60000,80000,100000})+(A2-1600<{500,2000,5000,20000,40000,60000,80000,100000,100000000000})=2,(A2-1600)*{0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45}-{0,25,125,375,1375,3375,6375,10375,15375},0))),2),"")}
优点:同样克服了 IF 嵌套版不能涵盖全部九级累进区间的缺陷,且公式内数据相对容易维护,整个公式维护起来也比较简单。
缺点:数组公式的操作方法比较独特,每次修改后都要用“ Ctrl+Shift+Enter ”组合键加以识别,且可扩展性不如在后台运行的 VBA 代码。
P.S. :
“数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号 ({ }) 中。按 Ctrl+Shift+Enter 可以输入数组公式。”
【方案四】—— VBA 代码版:
“工具” -- 》“宏” -- 》“ Visual Basic 编辑器” -- 》“插入” -- 》“模块”
============= 复制以下代码至编辑窗口 ================
'计算个人收入调节税 (Individual Income Adjustment Tax)
Function iiatax(x,y)
Dim basicnum As Integer
Dim downnum As Variant, upnum As Variant, ratenum As Variant, deductnum As Variant
If y = 0 Then
basicnum = 1600 '定义中国公民个税起征点
ElseIf y = 1 Then
basicnum = 4800 '定义外国公民个税起征点
Else: basicnum = Null
End If
downnum = Array(0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000) '定义累进区间下限
upnum = Array(500, 2000, 5000, 20000, 40000, 60000, 80000, 100000, 100000000) '定义累进区间上限
ratenum = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45) '定义累进税率
deductnum = Array(0, 25, 125, 375, 1375, 3375, 6375, 10375, 15375) '定义累进速算扣除数
If IsNumeric(x) = False Then
MsgBox ("请检查计税工资是否为数值!")
End If
If x < 0 Then
MsgBox ("计税工资为负,重新输入!")
End If
If x >= 0 And x < basicnum Then
iiatax = 0
End If
For i = 0 To UBound(downnum)
If x - basicnum > downnum(i) And x - basicnum <= upnum(i) Then
iiatax = Round( ( x - basicnum ) * ratenum(i) - deductnum(i), 2)
End If
Next i
End Function
============= 复制以上代码至编辑窗口 ================
P.S. :
1、iiatax(参数1,参数 2 ),参数 1 引用计税工资,参数 2 用“ 0 ” 表示中国公民的所得税起征点,用“ 1 ” 表示外国公民的起征点。
2、使用时可以像使用函数一样,如“ B2=iiatax(A2,0) ”,或者“ B2=iiatax(6500,1) ”。
佛山电脑培训,首选致用电脑学校,面向全国招生! |
微信扫一扫 | ||
权利:©佛山致用电脑学校 电话:0757-88330101 公安备案编号:200401C0008 粤ICP备12025059号 学校地址:广东省佛山市禅城区祖庙路53号 Copyright©1993-2016 all rights reserved |
![]() |
![]() |