找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

通达OA官网网站
搜索
查看: 2589|回复: 5

求助:个人所得税计算代码

[复制链接]

1

主题

2

回帖

16

牛毛

二级牛人

积分
19
发表于 2014-9-4 19:56:56 | 显示全部楼层 |阅读模式 来自 广东省广州市
本帖最后由 通达林河水 于 2016-7-30 15:47 编辑 <br /><br />OA报表系统,做工资总表,需要自动生成个人所得税,求代码。
2011年9月1日后执行的新个人所得税的计算方法:免税额3500元。
应纳税额=( 工资-三险一金-3500)*税率-速算扣除数 调整后的7级超额累进税率如下:
1,全月应纳税额不超过1500元的,税率为3%,速算扣除数0;
2,全月应纳税额超过1500元至4500元的部分,税率为10%。速算扣除数105元;
3,全月应纳税额超过4500元至9000元的部分,税率为20%。速算扣除数555元;
4,全月应纳税额超过9000元至35000元的部分,税率为25%,速算扣除数1005元;
5,全月应纳税额超过35000元至55000元的部分,税率为30%,速算扣除数2755元;
6,全月应纳税额超过55000元至80000元的部分,税率为35%。速算扣除数5505元;
7,全月应纳税额超过80000的部分,税率为45%。速算扣除数13505元。

39

主题

292

回帖

792

牛毛

游客

积分
1123
QQ
发表于 2014-9-4 20:51:10 | 显示全部楼层
本帖最后由 通达林河水 于 2016-7-30 15:47 编辑 <br /><br />EXCEL表格里,会不会实现?
在EXCEL中,用IF镶嵌这7种条件,测试OK,
然后导入BI报表,搞定。

1

主题

2

回帖

16

牛毛

二级牛人

积分
19
 楼主| 发表于 2014-9-5 14:30:06 | 显示全部楼层 来自 广东省广州市
本帖最后由 通达林河水 于 2016-7-30 15:47 编辑 <br /><br />EXCEL表格里可以以实现,财务一直都在用,但是我导入BI报表后就报错。

1

主题

2

回帖

16

牛毛

二级牛人

积分
19
 楼主| 发表于 2014-9-9 13:32:05 | 显示全部楼层 来自 广东省广州市
本帖最后由 通达林河水 于 2016-7-30 15:47 编辑 <br /><br />问题已解决,把公式分享给大家:
=IF(应税工资<=3500,0,IF(应税工资-3500<=1500,(应税工资-3500)*3%,IF(AND(应税工资-3500<=4500,应税工资-3500>1500),(应税工资-3500)*10%-105,IF(AND(应税工资-3500<=9000,应税工资-3500>4500),(应税工资-3500)*20%-555,IF(AND(应税工资-3500<=35000,应税工资-3500>9000),(应税工资-3500)*25%-1005,IF(AND(应税工资-3500<=55000,应税工资-3500>35000),(应税工资-3500)*30%-2755,IF(AND(应税工资-3500<80000,应税工资-3500>=55000),(应税工资-3500)*35%-5505,(应税工资-3500)*45%-13505)))))))

0

主题

307

回帖

632

牛毛

游客

积分
939
发表于 2014-9-9 18:03:33 | 显示全部楼层
本帖最后由 通达林河水 于 2016-7-30 15:47 编辑 <br /><br />谢谢 xygl用户的回答。

24

主题

276

回帖

892

牛毛

一级牛人

积分
892
发表于 2015-1-19 14:12:13 | 显示全部楼层 来自 四川省甘孜州
本帖最后由 通达林河水 于 2016-7-30 15:47 编辑 <br /><br />用4楼的这个公式,我来告诉通达什么叫优化:
第一步,对多次重复的不必要的内容进行精简,在条件比较的式子中多次出现的  应税工资-3500 ,应该通过算术移项将 -3500 消去(计算税额需要的-3500在这里无法去掉):
=IF(应税工资<=3500,0,IF(应税工资<=5000,(应税工资-3500)*3%,IF(AND(应税工资<=8000,应税工资>5000),(应税工资-3500)*10%-105,IF(AND(应税工资<=12500,应税工资>8000),(应税工资-3500)*20%-555,IF(AND(应税工资<=38500,应税工资>12500),(应税工资-3500)*25%-1005,IF(AND(应税工资<=58500,应税工资>38500),(应税工资-3500)*30%-2755,IF(AND(应税工资<83500,应税工资>=58500),(应税工资-3500)*35%-5505,(应税工资-3500)*45%-13505)))))))
第二步,因为各档次之间是连续的,可以将判断的顺序适当改变,去掉不必要的and(),还可以将 <= 的判断 改成 > 判断进一步缩减表达式:
=IF(应税工资<=3500,0,IF(应税工资>83500,(应税工资-3500)*45%-13505,IF(应税工资>58500,(应税工资-3500)*35%-5505,IF(应税工资>38500,(应税工资-3500)*30%-2755,IF(应税工资>12500,(应税工资-3500)*25%-1005,IF(应税工资>8000,(应税工资-3500)*20%-555,IF(应税工资>5000,(应税工资-3500)*10%-105,(应税工资-3500)*3%)))))))
第三步,这步才是真正意义上的优化,前面两步只是对表达式的精简而已。因为excel对IF表达式的运算是从最外层嵌套开始,满足条件之后就返回对应结果并不再继续检查其他条件,因此,需要考虑日常工作中应税工资所在档次的频度排序,尽可能的将最多出现频率的档次放在更外层IF条件中。在第二步中单纯的将 <= 运算符换成 > 运算符并不能显著提升效率,只是可以减小文件的体积,对效率有理论上的好处。例,假如工资表中出现最多的工资在5000到8000之间,第二是8000到12500之间,第三是3500到5000之间,其他情况都很少,那么可以是这样:
=IF(应税工资<=8000,IF(应税工资>5000,(应税工资-3500)*10%-105,IF(应税工资>3500,(应税工资-3500)*3%,0)),IF(应税工资<=12500,(应税工资-3500)*20%-555,IF(应税工资<=38500,(应税工资-3500)*25%-1005,IF(应税工资>83500,(应税工资-3500)*45%-13505,IF(应税工资>58500,(应税工资-3500)*35%-5505,(应税工资-3500)*30%-2755)))))
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

咨询电话:400 818 0505 通达OA,国内协同管理软件行业内唯一的央企单位,中国协同OA软件的领跑者,优秀协同办公解决方案供应商

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|由NB5牛论坛提供技术支持NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2024-12-24 01:59 , Processed in 0.129355 second(s), 41 queries , Yac On.

Powered by Discuz

Copyright © 2001-2024, 北京通达信科科技有限公司.

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