ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 个人所得税筹划vab代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-2 15:46 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
表中,
1.月工资错误,应该取最小税合计时的月工资数据,
2.当不同年薪行数比较多的时候,计算量大,速度慢,一两小时出不来数据
请帮忙改一下代码,谢谢!

[ 本帖最后由 yaoxuhuijsz 于 2011-7-3 09:06 编辑 ]

个税计算筹划2011060.rar

108.94 KB, 下载次数: 260

TA的精华主题

TA的得分主题

发表于 2011-7-2 16:29 | 显示全部楼层
税不是最小:

发50万,月37166.67,年54000,税计:94235

个税计算筹划2011060.rar (55.99 KB, 下载次数: 163)

[ 本帖最后由 wangtx218 于 2011-7-2 17:28 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-3 09:06 | 显示全部楼层
个人所得税筹划vab代码
表中,
1.月工资错误,应该取最小税合计时的月工资数据,
2.当不同年薪行数比较多的时候,计算量大,速度慢,一两小时出不来数据
请帮忙改一下代码,谢谢!
Option Explicit
Public Sub 最小税合计()
Dim 年薪(), 月工资#, 税合计#, arr(), 最小税合计#, k#, 奖金#, 税合计1#, 税合计2#, 最小工资#, arr1(), i#, j#
年薪() = Range("a2:a" & Cells(Rows.Count, 1).End(3).Row)
For j = 1 To UBound(年薪())
    For 月工资 = 3501 To 年薪(j, 1) * 10000 / 12 - 1
        奖金 = 年薪(j, 1) * 10000 - 月工资 * 12
        税合计1 = Evaluate("(VLOOKUP(" & 奖金 & "/12,{0,0.03,0;1500,0.1,105;4500,0.2,555;9000,0.25,1005;35000,0.3,2755;55000,0.35,5505;80000,0.45,13505},2,1)*" & 奖金 & "-VLOOKUP(" & 奖金 & "/12,{0,0.03,0;1500,0.1,105;4500,0.2,555;9000,0.25,1005;35000,0.3,2755;55000,0.35,5505;80000,0.45,13505},3,1))")
        税合计2 = Evaluate("(ROUND(MAX((" & 月工资 & "-3500)*0.05*{0.6;2;4;5;6;7;9}-5*{0;21;111;201;551;1101;2701},0),2))*12")
        税合计 = 税合计1 + 税合计2
        k = k + 1
        ReDim Preserve arr(1 To 1, 1 To k)
        arr(1, k) = 月工资
        ReDim Preserve arr1(1 To 1, 1 To k)
        arr1(1, k) = 税合计
    Next 月工资

        最小税合计 = WorksheetFunction.Min(arr1())
    i = 1
    Do While arr1(1, i) = 最小税合计
        i = i + 1
    Loop
        最小工资 = arr(1, i)
        Cells(j + 1, 7) = 最小税合计
        Cells(j + 1, 2) = 月工资
        Erase arr1
        Erase arr
        k = 0
Next j
MsgBox "已完成"
End Sub

[ 本帖最后由 yaoxuhuijsz 于 2011-7-3 09:16 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-7-3 10:03 | 显示全部楼层

回复 3楼 yaoxuhuijsz 的帖子

我改不好,给一个灰袍法师 写的:

收入最大计算表_110702B.rar (19.08 KB, 下载次数: 401)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-3 10:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
还是要谢谢

TA的精华主题

TA的得分主题

发表于 2011-7-3 19:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
要想快,就最好直接查表,根本不用算,1万笔也就1秒钟搞定

本回帖的附件必须先计算出一个年薪100万以内的个人所得税最优化表格(附件已完成此计算,除非税制变化否则无需再算)

然后所有数据都直接查表

查表的取巧之处在于,如果年薪2大于年薪1,那么最优个人收入2也大于等于最优个人收入1

因此,考虑 年薪2 - 年薪1 的增量部分即可,即 :   最优个人收入2 = 最优个人收入1 + (年薪2 - 年薪1)造成的收入

而计算个人所得税是分区间的,在区间内,税率不变,因此假设 年薪1 = 10万,年薪2 = 10万零301

那么这个301肯定是全部分配到年终奖,或者全部分配到月收入

我们只要查表看一下10万零500的最优收入的分配结构,就知道这301应该分到哪里了,完全不需要计算!

好的计算方法是速度之王

[ 本帖最后由 灰袍法师 于 2011-7-4 01:10 编辑 ]

2011年收入最优化 - 批量高速计算 - 双重步长生成查找表 - 用查找表直接找最佳值.rar

39.67 KB, 下载次数: 825

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-4 08:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
灰袍法师,半夜上传的,太辛苦了,谢谢
大力推广给财务人员。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-4 08:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
还有个问题,不知道提出来是不是合理
因为年薪固定,税负最低情况下,月收入是有多种解,能否把月收入的最高解和最低解,即解的范围区间显示出来。
考虑实际情况,一个公司员工,比如年薪5万,公司不可能把5万都作为月工资的方式进行发放,而要把5万中的一部分留到年终发放,比如月工资3500,年终奖金8000,税负是240,也是最低税负,这样,一来可以调节企业资金,二来提高员工积极性,三来降低员工离职率等因素考虑

TA的精华主题

TA的得分主题

发表于 2011-7-4 12:57 | 显示全部楼层
算是算出来了,怎么实施呢?要是每个人单独一种发放方法,那不是乱套啦?

TA的精华主题

TA的得分主题

发表于 2011-7-4 13:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

3楼真牛. 学习.

3楼真牛. 学习.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-27 15:19 , Processed in 0.052664 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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