2016年
财会月刊(28期)
会计电算化
利用穷举法设计最佳工薪个税模型及Excel宏实现

作  者
冯汉杰(高级会计师),苏海蓉(高级会计师)

作者单位
肇庆学院财务处,广东肇庆526061

摘  要

      【摘要】本文以现行的工资薪金结构为基础,充分考虑固定工资、代扣社保、代扣住房公积金和其他免税项目等工资薪金项目,利用月工资薪金个税与全年一次性奖金个税的计税差异,对全年工薪个税进行规划;通过穷举法罗列出全部可能的工资薪金配置方案,并比较各方案全年总个税的值,最终得到使全年总个税值最小的最佳个税方案;以此思路设计最佳个税方案模型,并利用Excel宏功能实现模型的运用。
【关键词】工资薪金;个人所得税;模型;Excel宏
【中图分类号】F812.42;TP39           【文献标识码】A           【文章编号】1004-0994(2016)28-0093-5一、引言
依法缴纳个人所得税是每个公民应尽的义务,依法为本单位员工代扣代缴工资薪金的个人所得税也是每个单位应该履行的职责。与此同时,单位和公民个体也可享有对工资薪金进行合理规划从而达到合理避税目的的权利。如何对全年的工资薪金进行合理规划,以使全年的工资薪金产生的个人所得税最少,是值得学者研究的课题。
根据现行《个人所得税法》及《个人所得税法实施条例》,现行的工资薪金所得适用税率分为7级,月工资薪金所得适用7级超额累进税率,月工资薪金个税=(月工资薪金-代扣社保和住房公积金-3500)×适用税率-速算扣除数。根据《国家税务总局关于调整个人取得全年一次性奖金等计算征收个人所得税方法问题的通知》,全年一次性奖金(以下简称“年奖金”)个税=年奖金×适用税率-速算扣除数=(年奖金/12×适用税率-速算扣除数/12)×12,适用税率和速算扣除数按年奖金/12的商值依照最新税法税率表确定。从计税公式可以看出,月工资薪金个税每月都减除“速算扣除数”,全年可以减除12次,采用超额累进税率计税方式计税,但年奖金个税全年只能减除1次,可以说是采用全额累进税率计税的,这也直接导致年奖金存在多发少得的现象。如:年奖金为1.8万元时,个税为540元,税后奖金为17460元;而当年奖金再增加1元时,个税为1695.1元,税后奖金为16305.9,反而少了1154.1元。但如果将拟在年奖金中增加的这1元改放在月工资薪金中发放,增加的个税仅仅是这1元与适用税率的乘积。月工资薪金与年奖金在计税方法上的差异,为全年工资薪金个税规划提供了可操作的空间。
自2011年《个人所得税法》发布后,学者们对个税临界点、个税规划等相关问题进行了大量的研究,其中有许多很好的观点和实操方案提出,例如:王伟(2014)在《个人工薪所得最优纳税筹划方案探讨》一文中提出的通过推演出税负均衡点最终得到《个人工薪所得纳税筹划最优方案简表》的方案,傅樵、叶彬彬(2013)在《运用Excel 构建个人所得税筹划模型》一文中提出的直接利用Excel“规划求解”功能得出最优方案等。但是,也有许多研究最终给出的结果不是最佳个税方案甚至是错误的方案,如:陈国栋(2012)在《Excel规划求解在个人所得税筹划中的应用》文中列举的“年税前总收入250000元,得出月工资薪金17500元、年奖金57500元为最佳方案”,但此方案并非是使得个税最小的方案;王明吉(2014)在《Excel个人所得税筹划模型构建》中提出的模型二甚至违反个税规划中年奖金税率不能大于月工资薪金税率的基本原则,得出的结果当然也是错误的。
另外,众多的研究都对现实中的工资薪金发放的具体情况进行了简化,没有考虑到每月的工资薪金中通常包括基本工资、岗位工资、工龄工资等相对固定的部分,这些部分是不能放在年奖金中发放的,也没有考虑代扣社保和住房公积金等免税的部分。所以,笔者认为,有必要对个税规划进行研究,并将这些因素都考虑进去,设计出一个工资薪金最佳方案模型,利用Excel宏功能实现该模型。
二、设计最佳个税方案模型
(一)设计说明
前文已述及,月工资薪金与年奖金计税都使用相同的税率表,最高的适用税率都为45%,月工资薪金采用超额累进税率计税方式,而年奖金则采用全额累进税率计税方式,因而,在月工资薪金和年奖金都可能达到相同税率时,通常将工资薪金调整部分到月工资薪金中发放,以使月工资薪金税率大于年奖金税率,这样全年就可以拥有更多倍的速算扣除额,全年的个税也会较小。若由于全年工资薪金较高,将年奖金数额设定为超过96万元时,年奖金将全额按45%计税。但若将年奖金最大值调整为96万元,其余部分平摊到月工资薪金中,此时年奖金最高税率减为35%,而其余部分的最大税率也仅为45%,两种方案相比较,调整后的方案个税明显较少。因而,为了简化最佳个税规划方案模型,本文的规划方案设定年奖金最大值为96万元。
模型中按年奖金从小到大和从大到小两个顺序搜索两套最佳方案,最终得出的两套最佳方案可能相同,也可能不同。两套最佳方案不同的,说明很有可能还有其他方案的存在,但总个税值与本文得出的最佳方案是一致的。
(二)设计模型
1. 模型思路。全年的工资薪金总额可以分割为全年12个月工资薪金和年奖金两大部分,但每月工资薪金数额受每月固定发放的工资的约束。将年奖金由小到大(或由大到小)分别设定为0 ~ 960000之间的值,并将剩余部分工资薪金平摊到月工资薪金中。这样可以具体计算出每种方案全年总个税值,穷举全部可能的配置方案,并比较各方案的全年总个税值,最终得到使得全年总个税值最小的方案。
2. 全年工资薪金最佳个税模型设计方案。本模型采用表格式设计方案,模型输入项目包括:“年薪总额”、“每月固定部分工资薪金”、“社保”、“住房公积金”和“其他免税项”等。模型最终输出为:全年个税的最小值minT和此时T、Sy、Sm的具体值。模型设计详细情况见右表。
三、Excel宏功能实现模型并应用
(一)设计Excel方案
1. 在Excel建立“最佳方案”工作表,设计内容如图1所示。图1中的A1格为表单控件按钮,用于运行宏函数“生成个税最佳方案”。
2. 编制Excel宏,具体代码如下:
Const 个税起征点=3500
============== 输入部分 ==============
Dim 年薪总额 As Double
Dim 月固定工资 As Double
Dim 社保 As Double
Dim 住房公积金 As Double
Dim 其他免税项 As Double
============== 输出部分 ==============
Dim 月工资 As Double
Dim 工资税率 As Double
Dim 月工资个税 As Double
Dim 年奖金 As Double
Dim 年奖金税率 As Double
Dim 年奖金个税 As Double
============= 其他变量 ===============
Dim 最佳月工资 As Double
Dim 最佳工资税率 As Double
Dim 最佳月工资个税 As Double
Dim 最佳年奖金 As Double
Dim 最佳年奖金税率 As Double
Dim 最佳年奖金个税 As Double
Dim 最佳个税 As Double
Dim 月免税额 As Double
================ 程序 ===============
Sub 生成个税最佳方案()
Dim ScanNum As Long   ’扫描总次数,金额以12(因每年有12个月工资)为一个扫描单位
Dim I As Long

年薪总额=Range("D3").Value
月固定工资=Range("D4").Value
社保=Range("D5").Value
住房公积金=Range("D6").Value
其他免税项=Range("D7").Value
月免税额=个税起征点+社保+住房公积金+其他免税项

If 年薪总额/12<=月免税额 Then  ’年薪过小,全年不需要纳税
最佳月工资=Round(年薪总额/12,2)
最佳工资税率=0
最佳月工资个税=0
最佳年奖金=0
最佳年奖金税率=0
最佳年奖金个税=0
(填充结果 1)

Exit Sub
End If

If 月固定工资<月免税额 Then 月固定工资=月免税额
If (年薪总额-月固定工资×12)<960000 Then  ’对浮动工资进行判断。全年一次性奖金最大税率为35%,最大值为960000
ScanNum=Int(年薪总额-月固定工资×12)/12)
Else
ScanNum=960000/12
End If
   
======= 方案一:年奖金从小到大搜索 ========
初始化
I=0
年奖金=0
月工资=Round((年薪总额-年奖金)/12,2)
(重新计算税金)
   
最佳月工资=月工资
最佳工资税率=工资税率
最佳月工资个税=月工资个税
最佳年奖金=年奖金
最佳年奖金税率=年奖金税率
最佳年奖金个税=年奖金个税
最佳个税=年奖金个税+月工资个税×12
   
For I=1 To ScanNum
年奖金=Round(I×12,2)
月工资=Round((年薪总额 - 年奖金)/12,2)
(重新计算税金)
       
If 最佳个税>(年奖金个税+月工资个税×12)  Then
最佳月工资=月工资
最佳工资税率=工资税率
最佳月工资个税=Round(月工资个税,2)
最佳年奖金=年奖金
最佳年奖金税率=年奖金税率
最佳年奖金个税=Round(年奖金个税,2)
最佳个税=最佳年奖金个税+最佳月工资个税×12
End If
Next
(填充结果 1)
   
======= 方案二:年奖金从大到小搜索 ========
初始化
I=ScanNum年奖金=Round(I×12,2)
月工资=Round((年薪总额-年奖金)/12,2)
(重新计算税金)
   
最佳月工资=月工资
最佳工资税率=工资税率
最佳月工资个税=月工资个税
最佳年奖金=年奖金
最佳年奖金税率=年奖金税率
最佳年奖金个税=年奖金个税
最佳个税=年奖金个税+月工资个税×12
   
For I=ScanNum-1 To 0 Step-1
年奖金=Round(I×12,2)
月工资=Round((年薪总额-年奖金)/12,2)
(重新计算税金)
       
If 最佳个税>(年奖金个税+月工资个税×12) Then
最佳月工资=月工资
最佳工资税率=工资税率
最佳月工资个税=Round(月工资个税,2)
最佳年奖金=年奖金
最佳年奖金税率=年奖金税率
最佳年奖金个税=Round(年奖金个税,2)
最佳个税=最佳年奖金个税+最佳月工资个税×12
End If
Next
(填充结果2)
   
End Sub
Sub 重新计算税金()
Dim 月应税额 As Double
   
月应税额=月工资-月免税额
If 月应税额=0 Then
工资税率=0
月工资个税=0
ElseIf 月应税额<=1500 Then
工资税率=0.03
月工资个税=月应税额×工资税率
ElseIf 月应税额<=4500 Then
工资税率=0.1
月工资个税=月应税额×工资税率-105
ElseIf 月应税额<=9000 Then
工资税率=0.2
月工资个税=月应税额×工资税率-555
ElseIf 月应税额<=35000 Then
工资税率=0.25
月工资个税=月应税额×工资税率-1005
ElseIf 月应税额<=55000 Then
工资税率=0.3
月工资个税=月应税额×工资税率-2755
Else If  月应税额<=80000 Then
工资税率=0.35
月工资个税=月应税额×工资税率-5505
Else
工资税率=0.45
月工资个税=月应税额×工资税率-13505
End If
   
If 年奖金=0 Then
年奖金税率=0
年奖金个税=0
Else If  年奖金<=18000 Then
年奖金税率=0.03
年奖金个税=年奖金×年奖金税率
Else If  年奖金<=54000 Then
年奖金税率=0.1
年奖金个税=年奖金×年奖金税率-105
Else If  年奖金<=108000 Then
年奖金税率=0.2
年奖金个税=年奖金×年奖金税率-555
Else If 年奖金<=420000 Then
年奖金税率=0.25
年奖金个税=年奖金×年奖金税率-1005
Else If  年奖金<=660000 Then
年奖金税率=0.3
年奖金个税=年奖金×年奖金税率-2755
Else   ’不需判断是否超过960000
年奖金税率=0.35
年奖金个税=年奖金×年奖金税率-5505
End If
   
End Sub
Sub 填充结果(方案号 As Long)
(将结果填充回Excel表中,显示出来)
   
If 方案号=1 Then
Range("D8").Value=最佳月工资
Range("D9").Value=最佳工资税率
Range("D10").Value=最佳月工资个税
Range("D11").Value=最佳年奖金
Range("D12").Value=最佳年奖金税率
Range("D13").Value=最佳年奖金个税
Range("D14").Value=最佳年奖金个税+最佳月工资个税×12
Else
Range("D15").Value=最佳月工资
Range("D16").Value=最佳工资税率
Range("D17").Value=最佳月工资个税
Range("D18").Value=最佳年奖金
Range("D19").Value=最佳年奖金税率
Range("D20").Value=最佳年奖金个税
Range("D21").Value=最佳年奖金个税+最佳月工资个税×12
End If
MsgBox “已生成个税最佳方案!”, vbOKOnly

End Sub
(二)实际应用及方案结果修正
1. 实际应用及结果。实际应用中,首先清空Excel表中D3 ~ D21的数据,在D3 ~ D7输入相应的数据,然后点击A1格按钮运行宏,即生成个税最佳方案。
例1:年工资薪金5万元,每月代扣社会保险300元,没有其他项目数据,生成个税最佳方案,见图2。

 

 

 

 

 

 

 

 

例2:年工资薪金16万元,固定月工资薪金6500元,每月代扣社会保险500元,每月代扣住房公积金950元,每月其他免税项1000元,生成个税最佳方案,见图3。
2. 方案结果修正。通过观察例1和例2,不难发现,Excel表得出的最佳方案中,年薪总额≠年奖金+每月工资薪金×12。产生这个问题的原因是,年薪不能被12整除,四舍五入时产生了微小误差。因此,产生这个问题时,只需对某个月的工资工薪金进行微调。如例2,可在12月份工资薪金中加0.04元,这样全年发放的月工资薪金加上全年一次性奖金之和与年薪总额就保持一致了。

主要参考文献:
全国人民代表大会常务委员会.关于修改《中华人民共和国个人所得税法》的决定.中华人民共和国主席令第48号,2011-06-30.
国务院.关于修改《中华人民共和国个人所得税法实施条例》的决定.中华人民共和国国务院令第600号,2011-07-19.
国家税务总局.国家税务总局关于调整个人取得全年一次性奖金等计算征收个人所得税方法问题的通知.国税发[2005]9号,2015-01-21.
王伟.个人工薪所得最优纳税筹划方案探讨[J].财会月刊,2014(12).
傅樵,叶彬彬.运用Excel构建个人所得税筹划模型[J].财会月刊,2013(3).
陈国栋.Excel规划求解在个人所得税筹划中的应用[J].财会月刊,2012(16).
王明吉.Excel个人所得税筹划模型构建[J].商业会计,2014(24).