ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 31819|回复: 72

[分享] 全年一次性奖金的税收筹划

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-3-19 17:09 | 显示全部楼层 |阅读模式
本帖最后由 sunya_0529 于 2012-3-19 17:10 编辑

全年一次性奖金(有地方也叫“数月奖金”、“年终奖”等等),由于特殊的算法,出现了多发一块钱,个税要多交数千元的怪现象,这个问题在网上的讨论也很多,已经引起了越来越多的人的关注。

鉴于很多人问到了这个问题,想做个小小的总结(帮大家预搜索了一下而已),给求答案的后来者们一个一站式的信息中心。

既有方案——
chrisfang版主[分享] 7级税率下的年终奖个税计算公式

wangtx218[分享] 最新个税公式2011630日(二楼)

白色GG [分享] 一键进行年终奖和工资调节,使税后收入最大化



典型案例——
天际菲虹:如何避免年终奖个税盲区,使个税缴纳的最少?


在上面的典型案例中,本人给出了一个自己的解决方案,二楼将分享一下思路及原理。


TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-19 17:11 | 显示全部楼层
本帖最后由 sunya_0529 于 2012-3-19 19:03 编辑

先介绍一下计算个税的自定义函数(工资、劳务、全年一次性奖金三位一体)
使用范例——
 
A
B
C
D
E
F
1国籍
月工资
社保公积金
计税工资
所得税
实发工资
2中国
5000
900
4100
18
4082
3

=B2*18%
=B2-C2
=iiatax(D2,IF(A2="中国",1,2))
=D2-E2
4
5国籍
计税工资
年终奖
奖金所得税
实发奖金
6中国
4100
18001
1695.1
16305.9
7
=D2

=iiatax(C6,(A6<>"中国")+1,B6)
=C6-D6


下面是自定义函数的源代码:

  1. Function iiatax(x As Double, y As Integer, Optional z As Double) '独立所得税计算函数
  2. 'y=1 计算中国公民工薪所得税
  3. 'y=2 计算外国公民工薪所得税
  4. 'y=3 计算劳务所得税
  5. 'z 可选,年终一次性奖金发放当月的计税工资

  6. 'Application.Volatile False
  7. If IsNumeric(x) = False Then
  8.   iiatax = "#NUM" '计税工资非数值
  9.   Exit Function
  10. End If

  11. If x < 0 Then
  12.   iiatax = "-#VAL" '计税工资为负
  13.   Exit Function
  14. End If

  15. Dim basicnum As Integer, i As Integer
  16. Dim downnum As Variant, upnum As Variant, ratenum As Variant, deductnum As Variant, laowudeduct As Variant
  17. Dim gongxin As Double, laowu As Double, nianjiang As Double
  18. downnum = Array(0, 1500, 4500, 9000, 35000, 55000, 80000) '定义累进区间下限
  19. upnum = Array(1500, 4500, 9000, 35000, 55000, 80000, 100000000) '定义累进区间上限
  20. ratenum = Array(0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45) '定义累进税率
  21. deductnum = Array(0, 105, 555, 1005, 2755, 5505, 13505) '定义累进速算扣除数

  22. Select Case y
  23.   Case 1
  24.     basicnum = 3500 '中国公民个税起征点,2011年9月1日起执行
  25.   Case 2
  26.     basicnum = 4800 '外籍公民个税起征点
  27.   Case 3 '劳务所得税
  28.     downnum = Array(0, 4000, 20000, 50000)
  29.     upnum = Array(4000, 20000, 50000, 100000000)
  30.     ratenum = Array(0.2, 0.2, 0.3, 0.4)
  31.     deductnum = Array(0, 0, 2000, 7000)
  32.     laowudeduct = Array(800, x * 0.2, x * 0.2, x * 0.2)
  33.     For i = 0 To UBound(downnum)
  34.       If x > downnum(i) And x <= upnum(i) Then
  35.         laowu = (x - laowudeduct(i)) * ratenum(i) - deductnum(i)
  36.         Exit For
  37.       End If
  38.     Next i
  39.   Case Else
  40.     iiatax = "#N/A" '参数不能识别
  41.     Exit Function
  42. End Select

  43. If z > 0 Then '数月奖金计税
  44.   For i = 0 To UBound(downnum)
  45.     If x / 12 > downnum(i) And x / 12 <= upnum(i) Then
  46.       nianjiang = Application.Max((x - Application.Max(basicnum - z, 0)) * ratenum(i) - deductnum(i), 0)
  47.       Exit For
  48.     End If
  49.   Next i
  50. Else '计算工薪所得税
  51.   For i = 0 To UBound(downnum)
  52.     If x - basicnum > downnum(i) And x - basicnum <= upnum(i) Then
  53.       gongxin = (x - basicnum) * ratenum(i) - deductnum(i)
  54.       Exit For
  55.     End If
  56.   Next i
  57. End If

  58. If y = 3 Then gongxin = 0
  59. iiatax = Application.Round(gongxin + laowu + nianjiang, 2)
  60. End Function
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-19 18:22 | 显示全部楼层
本帖最后由 sunya_0529 于 2012-3-19 19:13 编辑

先看一下个税筹划的一个简单的实例——
国籍
月工资
社保公积金
年终奖
计税工资
计税奖金
工资税
奖金税
实得收入
备注
中国
25000
4500
18001
20500
18001
3245
1695.1
33560.90
常规计税
中国
25001
4500
18000
20501
18000
3245.25
540
34715.75
优化计税,陷阱模式
中国
9501
4500
33500
5001
33500
45.1
3245
35210.90
优化计税,疯狂模式


第二行数据显示的是将多发的1块钱奖金调节到月工资里计税,则省1154.85元个税的例子,这就是常说的陷阱;

第三行数据显示的是将工资里的15499元调节到年终奖里发放,则省1650元个税的例子。

在实际操作中,针对陷阱模式的优化计税比较可行,可以将调节的金额另立一个名目,比如叫“XX津贴"、"XX补贴"等直接放在工资里发放即可;而”疯狂模式“的操作其实也可以操作,直接在病事假或者其他扣款里减掉工资里调节出来的金额,加到年终奖里一起发放就好了,不过这种方式需要跟员工本人确认,HR不能做到最后被倒打一靶说公司克扣员工的工资,解释起来比较麻烦。

这里针对两种模式的筹划,同样使用了一个自定义函数,如上面的例子中,第二行的年终奖中的公式是:”=bestab(E2,D2,(A3="中国")+1,1)
第四个参数为0时是”疯狂模式“,为1时是”陷阱模式“,可以根据需要自行设定。(具体使用可以参考附件中的例子)

这个自定义函数的计算原理是使用枚举法测算税赋最小值,在”计税工资+年终奖“不变的情况下,年终奖从0开始逐步递增500,找到最小税赋值时记录下对应的工资和奖金值。(详情可参见附件中的”合理避税“表)

下面是这个自定义函数的源代码——
  1. Function BestAB(dbl1 As Double, dbl2 As Double, isCN As Boolean, isTrap As Boolean)
  2. 'dbl1,数月奖金发放当月计税工资
  3. 'dbl2,数月奖金金额
  4. 'isCN,“0”为外籍员工,“1”为中籍员工
  5. 'isTrap,“0”为疯狂模式,“1”为陷阱模式

  6. Dim r1 As Double, r2 As Double, s As Double, i As Double, arr(9999, 4), j%
  7. '求优化前的应纳税额
  8. r2 = iiatax(dbl1, IIf(isCN, 1, 2)) + iiatax(dbl2, IIf(isCN, 1, 2), dbl1)
  9. For i = 0 To dbl1 + dbl2 Step 500
  10.   '奖金调节为i时,求纳税额
  11.   arr(j, 0) = iiatax(dbl1 + dbl2 - i, IIf(isCN, 1, 2)) + iiatax(i, IIf(isCN, 1, 2), dbl1 + dbl2 - i)
  12.   '工资调节为i时,求纳税额
  13.   arr(j, 1) = iiatax(i, IIf(isCN, 1, 2)) + iiatax(dbl1 + dbl2 - i, IIf(isCN, 1, 2), i)
  14.   arr(j, 2) = i '奖金额
  15.   arr(j, 3) = dbl1 + dbl2 - i '工资额
  16.   r1 = arr(j, 0)
  17.   If isTrap Then '如果是陷阱模式的话,只向下调节奖金
  18.     If r1 <= r2 And i < dbl2 Then
  19.       r2 = r1
  20.       s = i
  21.     End If
  22.   Else '如果是疯狂模式的话,工资奖金双向调节,直至最优
  23.     If r1 <= r2 Then
  24.       r2 = r1
  25.       s = i
  26.     End If
  27.   End If
  28.   j = j + 1
  29. Next
  30. If s = 0 Or Round(iiatax(dbl1 + dbl2 - s, IIf(isCN, 1, 2)) + iiatax(s, IIf(isCN, 1, 2), dbl1 + dbl2 - s), 2) = Round(iiatax(dbl1, IIf(isCN, 1, 2)) + iiatax(dbl2, IIf(isCN, 1, 2), dbl1), 2) Then
  31.   BestAB = dbl2
  32. Else
  33.   BestAB = s
  34. End If
  35. End Function
复制代码

年终奖合理避税2012.rar

30.97 KB, 下载次数: 1168

打开需要启用宏

TA的精华主题

TA的得分主题

发表于 2012-3-20 16:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好思路{:soso_e166:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-1 18:34 | 显示全部楼层
自己顶一下,又到年底发奖金的时候了,希望可以能给有需要的人帮上一点小忙。

顺祝大家2013年元旦快乐,E家幸福安康{:soso_e182:}

TA的精华主题

TA的得分主题

发表于 2013-3-10 19:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-3-31 22:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好东西,神器啊      

TA的精华主题

TA的得分主题

发表于 2013-12-30 15:47 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-31 13:04 | 显示全部楼层
Dr.Hiluluk 发表于 2013-12-30 15:47
有没有批量算的?

上面的函数就是可以批量算的呀。

TA的精华主题

TA的得分主题

发表于 2013-12-31 20:10 | 显示全部楼层
sunya_0529 发表于 2013-12-31 13:04
上面的函数就是可以批量算的呀。

怎么弄啊?我好像看到只能输入一个人的工资数额进行测算啊
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 21:24 , Processed in 0.046706 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表