总第 675 期
【作 者】
张 明 陈勇明(教授)
【作者单位】
(成都信息工程学院应用数学学院 成都 610225)
【摘 要】
【摘要】本文利用Excel的VBA编程技术求解全年一次性奖金纳税筹划模型,并在Excel中制作运行宏,实现全年一次性奖金最优纳税方案计算的自动化。
【关键词】个人所得税 全年一次性奖金 纳税筹划 Excel
一、引言
国家税务总局《关于调整个人取得全年一次性奖金等计算征收个人所得税方法问题的通知》(简称《通知》)自2005年1月1日起实施。《通知》规定,全年一次性奖金,除以12个月,按其商数确定适用税率和速算扣除数,适用公式为:应纳税额=雇员当月取得全年一次性奖金×适用税率-速算扣除数。
徐立(2012)研究指出,由于全年一次性奖金的应纳税额公式中只减去了一个速算扣除数,全年一次性奖金相当于采用的是全额累进税率,这将导致税前所得多而税后所得反而少的现象。例如:税前18 001元的税后所得16 305.9元比税前18 000元的税后所得17 460元反而少1 154.1元,这种现象被称为纳税的禁区区间,或者不合理区间。依据《通知》和现行个人所得税法,存在以下6个不合理区间:(18 000,19 283.33],(54 000,60 187.5],(108 000,114 600],(420 000,447 500],(660 000,706 538.47],(960 000,1 120 000]。为此,有必要考虑全年一次性奖金的纳税筹划问题。
由于《通知》规定纳税人取得全年一次性奖金,单独作为一个月工资、薪金所得计算纳税,这里的单独一个月是独立于全年12个月的一个时间上虚拟的一个月,在计算全年一次性奖金的时间上必然与真实的全年12个月中的某一个月重叠在一起。在现实经济生活中,工资和奖金的发放标准由员工所在单位掌握,于是万国超(2012)、孔祥彦(2012)、赵月(2013)等提出将全年一次性奖金和第12月工资进行适当组合,可既不违背税法规定,也使纳税筹划成为可能。赵月、陈勇明(2013)详细给出了该纳税筹划问题的数学模型,将其归结为一个带有分段函数的优化问题,在模型求解时采用了统计软件R。但目前R软件在实际财务工作中还不普及,因此本文考虑利用Excel的VBA编程技术求解全年一次性奖金纳税筹划模型,并在Excel中制作并运行宏,实现全年一次性奖金最优纳税方案计算的自动化。
二、全年一次性奖金纳税筹划理论模型
记全年一次性奖金和第12月工资的应税总额为M。规划的全年一次性奖金应税额记为Y,全年一次性奖金的纳税额记为[tY],[tY]是[Y]的函数,记为[tY=tY(Y)]。规划的第12月工资应税额记为[x12],纳税额记为[t12],[t12]是[x12]的函数,记为[t12=t12(x12)]。记纳税总额为[T]。
赵月、陈勇明(2013)给出了如下全年一次性奖金和第12月工资的纳税优化模型:
[minT=t12(x12)+tY(Y)s.t. x12+Y=M, 0≤x12≤M, 0≤Y≤M ] (1)
其中:
[t12=t12(x12)=x12×3%0≤x12≤1 500x12×10%-1051 500<x12≤4 500x12×20%-5554 500<x12≤9 000x12×25%-1 0059 000<x12≤35 000x12×30%-2 75535 000<x12≤55 000x12×35%-5 50555 000≤x12≤80 000x12×45%-13 505x12>80 000](2)
[tY=tY(Y)=Y×3%0≤Y≤18 000Y×10%-10518 000<Y≤54 000Y×20%-55554 000<Y≤108 000Y×25%-1 005108 000<Y≤420 000Y×30%-2 755420 000<Y≤660 000Y×35%-5 505660 000≤Y≤960 000Y×45%-13 505Y>960 000] (3)
三、用Excel求解模型的VBA代码
式(1)中变量取值理论上是连续的,而现实中金额并不需要是连续的,最低精度以0.1元即可,因而式(1)中的变量取值作为离散的处理。于是一个简单直接的方法是采用枚举法寻找式(1)的解,即给定全年一次性奖金和第12月工资的应税总额=M,第12月工资应税额x12和全年一次性奖金Y的分配方式记作(x12,Y),则(x12,Y)的全部取值为:(0,M),(0.1,M-0.1),(0.2,M-0.2),……,(M-0.1,0.1),(M,0)。对每种拆分方式,由式(2)和式(3)可分别算出第12月工资和全年一次性奖金的纳税额,加总得到纳税总额,选出最小纳税总额对应的拆分方式,即得到式(1)的解。鉴于Excel在财务工作中广泛使用,有必要在Excel中实现对式(1)的求解,下面给出Excel求解式(1)的VBA代码。
Sub 全年一次性奖金与第12月工资税收筹划()
Dim M As Double
M=InputBox("请输入全年一次性奖金和第12月工资的应税总额(单位:元,可输入一位小数):","全年一次性奖金和第12月工资的应税总额")
Dim times As Long
times=10∗M+1
Dim i,k As Long
ReDim S(times,4)As Double
ReDim Y(times,1)As Integer
S(1,1)=0
S(1,2)=M
For k=2 To times
S(k,1)=S(k-1,1)+0.1
S(k,2)=M-S(k,1)
Next
For i=1 To times
If S(i,1)<=1500.01 Then
S(i,3)=S(i,1)∗ 0.03
ElseIf S(i,1)<=4500.01 Then
S(i,3)=S(i,1)∗0.1-105
ElseIf S(i,1)<=9000.01 Then
S(i,3)=S(i,1)∗0.2-555
ElseIf S(i,1)<=35000.01 Then
S(i,3)=S(i,1)∗0.25-1005
ElseIf S(i,1)<=55000.01 Then
S(i,3)=S(i,1)∗0.3-2755
ElseIf S(i,1)<=80000.01 Then
S(i,3)=S(i,1)∗0.35-5505
Else
S(i,3)=S(i,1)∗0.45-13505
End If
If S(i,2)<=18000.01 Then
S(i,4)=S(i,2)∗0.03
ElseIf S(i,2)<=54000.01 Then
S(i,4)=S(i,2)∗0.1-105
ElseIf S(i,2)<=108000.01 Then
S(i,4)=S(i,2)∗0.2-555
ElseIf S(i,2)<=420000.01 Then
S(i,4)=S(i,2)∗0.25-1005
ElseIf S(i,2)<=660000.01 Then
S(i,4)=S(i,2)∗0.3-2755
ElseIf S(i,2)<=960000.01 Then
S(i,4)=S(i,2)∗0.35-5505
Else
S(i,4)=S(i,2)∗0.45-13505
End If
Y(i,1)=S(i,3)+ S(i,4)
Next
Dim j As Long
j=1
For i =2 To times
If Y(i,1)< Y(j,1)Then
j=i
End If
Next
Cells(2,1)="序号"
Cells(2,2)="全年一次性奖金和第12月工资的应税总额"
Cells(2,3)="规划第12月工资"
Cells(2,4)="规划全年一次性奖金"
Cells(2,5)="第12月工资纳税额"
Cells(2,6)="全年一次性奖金纳税额"
Cells(2,7)="最小纳税总额"
Cells(3,1).Select
For i =1 To times
If Y(i,1)=Y(j,1)Then
ActiveCell.Value =Selection.Row-2
Cells(Selection.Row,Selection.Column + 1)=M
Cells(Selection.Row,Selection.Column + 2)=S(i,1)
Cells(Selection.Row,Selection.Column + 3)=S(i,2)
Cells(Selection.Row,Selection.Column + 4)=S(i,3)
Cells(Selection.Row,Selection.Column + 5)=S(i,4)
Cells(Selection.Row,Selection.Column + 6)=Y(i,1)
Cells(Selection.Row + 1,1).Select
End If
Next
End Sub
四、在Excel中制作全年一次性奖金纳税筹划的宏
第一步 创建宏:
在Excel工作簿中选择【工具】→【宏】→【Visual Basic 编辑器】菜单项,或按下【Alt】+【F11】组合键。随即打开【Visual Basic 编辑器】窗口。在窗口端右击【Sheet1(Sheet1)】,选择【插入】→【模块】,随即打开Visual Basic 编辑框。在编辑框内输入上节中给出的求解模型的VBA代码,并关闭【Visual Basic 编辑器】窗口。
第二步 设置界面格式:
将第一行表格的高度设置为80像素,在第一行处插入按钮:在Excel工作簿中选择【视图】→【工具栏】→【窗体】菜单项,打开【窗体】工具栏。单击【按钮】,在Excel工作表中待鼠标指针变成“+”形状时在第一行按住鼠标左键不放,拖放至适当大小(其高度不要超出第一行)后释放鼠标左键,即可添加一个按钮控件。同时弹出该按钮的“指定宏”对话框。在“制定宏”对话框中,选择宏“全年一次性奖金与第12月工资税收筹划”,单击【确定】。
选中创建的按钮,将按钮文本编辑为“点击此处运行全年一次性奖金与第12月工资税收筹划程序,为你提供最优纳税方案”。右击按钮,选择【设置控件格式】,在弹出的“字体”对话框中将文本字体设置成“楷体”。 将工作表第二行高度设为64像素,设置该行的单元格格式,在“对齐”对话框中设置其“水平对齐方式”及“垂直对齐方式”为“居中”,并选择“自动换行”。第一列列宽设置为72像素,第二列列宽设为139像素,第三列宽设为88像素,第四列列宽设为128像素,第五列列宽设为91像素,第六列列宽设为121像素,第七列列宽设为112像素。将第二列及第七列单元格格式“水平对齐方式”设置为“居中”。
按下【Alt】+【A】选中全部单元格,点击【填充颜色】按钮,选择“白色”,再选择前七列,将前七列单元格的填充颜色设置为“无填充颜色”。
第三步 设置宏的安全性:
在Excel工作簿中,点击【工具】→【宏】→【安全性】菜单项,弹出设置宏的安全性的窗口,并选择其安全级别为“中”。
第四步 保存程序:
将所做Excel文本保存至相应文件夹中,并命名为“全年一次性奖金与第12月工资税收筹划程序”。
五、运行全年一次性奖金纳税筹划的宏
打开“全年一次性奖金与第12月工资税收筹划程序.xls”文档,在弹出的安全警告窗口中,点击【启用宏】。点击按钮“点击此处运行全年一次性奖金与第12月工资税收筹划程序,为你提供最优纳税方案”,弹出对话框“全年一次性奖金和第12月工资的应税总额”,输入所要计算的员工全年一次性奖金和第12月工资的应税总额,如21 000元,如图1所示。
点击【确定】,得到该员工的最低缴纳方案,共72个,部分方案设计截图如图2所示。
注意:在使用该程序计算另外员工的最低缴纳方案时,需选中全部单元格,将原计算结果剪切至其他文档中,再进行计算。
六、说明
在实际应用中需要注意,式(1)中的M值,即全年一次性奖金和第12月工资的应税总额指的是扣除了起征点3 500和住房公积金、失业保险、养老保险、医疗保险等免税额以后的值。
例如:假设某人12月工资和年底各项奖金加总得税前总收入109 000元,住房公积金、失业保险、养老保险等可以免税部分共计5 500元,则:109 000-5 500-3 500=100 000(元)。
运用本文方法,则上报全年一次性奖金54 000元,全年一次性奖金纳税额5 295元,上报第12月税前工资为46 000+5 500+3 500=55 000(元),第12月工资个人所得税11 045元,最低纳税总额为5 295+11 045=16 340(元)。
对式(1)中的有些M值,用本文方法得到的解有多个时,应尽量选择全年一次性奖金离无效区间较远的解,并尽量选择整数解,以免财务人员无意取整时误入无效区间。
【注】本文受到国家社会科学基金(项目编号:13BZZ055)、教育部人文社会科学研究规划基金(项目编号:12YJA790173)的资助。
主要参考文献
1. 王玉娟.新个人所得税法下全年一次性奖金的纳税筹划.财会月刊,2012;5
2. 李洁冉,王金洲.个人所得税法修订后的年终奖纳税无效区间.财会月刊,2011;30
3. 赵月,陈勇明.全年一次性奖金与第12月工资纳税筹划模型.财会月刊,2013;8