Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: lotte

[分享] 9月1日实施的最新个税excel计算公式(起征点3500,7级累进,第一级税率3%)

  [复制链接]
发表于 2011-7-15 06:38 | 显示全部楼层
回复

使用道具 举报

发表于 2011-7-18 17:36 | 显示全部楼层
Function Xgts(x As Variant, Optional z As Integer = 3500, Optional y As Boolean = True)
'2011-9-1执行的新个税,X为扣除三金一险工资(反算时为税),Z为起征点默认3500元,Y默认为true工资计税,为false时税反算工资
'修改时间2011年7月18日
  If y = True Then
      Select Case (x - z)
         Case Is < 0
               Xgts = 0
         Case Is <= 1500
               Xgts = (x - z) * 0.03
         Case Is <= 4500
               Xgts = (x - z) * 0.1 - 105
         Case Is <= 9000
               Xgts = (x - z) * 0.2 - 555
         Case Is <= 35000
               Xgts = (x - z) * 0.25 - 1005
         Case Is <= 55000
               Xgts = (x - z) * 0.3 - 2755
         Case Is <= 80000
               Xgts = (x - z) * 0.35 - 5505
         Case Is > 8000
               Xgts = (x - z) * 0.45 - 13505
       End Select
     Else '税反算工资
      Select Case x
             Case Is = 0
                Xgts = "小于起征点"
             Case Is <= 45
                Xgts = x / 0.03 + z
             Case Is <= 345
                Xgts = (x + 105) / 0.1 + z
             Case Is <= 1245
                Xgts = (x + 555) / 0.2 + z
             Case Is <= 7745
                Xgts = (x + 1005) / 0.25 + z
             Case Is <= 13745
                Xgts = (x + 2755) / 0.3 + z
             Case Is <= 22495
                Xgts = (x + 5505) / 0.35 + z
             Case Is > 22495
                Xgts = (x + 13505) / 0.45 + z
      End Select
    End If
End Function
刚写的自定义函数,大家看下对不对
回复

使用道具 举报

发表于 2011-8-6 07:55 | 显示全部楼层
这是我贴在其他网上的,发上来交流一下:
Function gts1(Optional a = 0, Optional y = -1)
'gts1(月收入),gts1(年收入,月收入)
Application.Volatile
b = 3500: i% = 1
If y = -1 Then x = a - b Else b = Application.Max(b - y, 0): x = (a - b) / 12
Dim arr(1 To 7), arr1, arr2, arr3
arr1 = Split("0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45", ",")    '各档税率
arr2 = Split("0,21,111,201,551,1101,2701", ",")   '各档扣除数
For Each c In Array(0, 1500, 4500, 9000, 35000, 55000, 80000)   '各档级距
    If x > c Then arr(i) = (a - b) * arr1(i - 1) - 5 * arr2(i - 1): i = i + 1
Next c
gts1 = Round(Application.Max(arr, 0) + 0.0001, 2)
End Function
Function gts2(Optional a = 0, Optional y = -1)
'gts2(月收入),gts2(年收入,月收入)
Application.Volatile
b = 3500: i% = 0: Dim arr
arr = Split("0.03, 0.07, 0.1, 0.05, 0.05, 0.05, 0.1", ",")
If y = -1 Then x = a - b Else b = Application.Max(b - y, 0): x = (a - b) / 12
   For Each c In Array(0, 1500, 4500, 9000, 35000, 55000, 80000) '各档级距
       If x > c Then gts2 = gts2 + (a - b - c) * arr(i): i = i + 1
   Next c
gts2 = Round(gts2 + 0.0001, 2)
End Function
Function gts3(Optional a = 0, Optional y = -1)
'gts3(月收入),gts3(年收入,月收入)
Application.Volatile
b = 3500
If y = -1 Then x = a - b Else b = Application.Max(b - y, 0): x = (a - b) / 12
s = a - b
Select Case x
        Case Is <= 0
            gts3 = 0
        Case Is <= 1500
            gts3 = s * 0.03
        Case Is <= 4500
            gts3 = s * 0.1 - 105
        Case Is <= 9000
            gts3 = s * 0.2 - 555
        Case Is <= 35000
            gts3 = s * 0.25 - 1005
        Case Is <= 55000
            gts3 = s * 0.3 - 2755
        Case Is <= 80000
            gts3 = s * 0.35 - 5505
        Case Else
            gts3 = s * 0.45 - 13505
    End Select
gts3 = Round(gts3 + 0.0001, 2)
End Function

回复

使用道具 举报

发表于 2011-8-7 21:28 | 显示全部楼层
谢谢。。。。
回复

使用道具 举报

发表于 2011-8-9 09:29 | 显示全部楼层
为什么我下载不了,呜呜呜
回复

使用道具 举报

发表于 2011-8-9 14:37 | 显示全部楼层
正好拿去显摆一下,谢了
回复

使用道具 举报

发表于 2011-8-9 17:28 | 显示全部楼层
学习啦,下月可不能扣我那么多的税啦!
回复

使用道具 举报

发表于 2011-8-9 23:42 | 显示全部楼层
回复 lotte 的帖子

路过顺便看看
回复

使用道具 举报

发表于 2011-8-12 09:31 | 显示全部楼层
雪中送炭啊,谢谢了
回复

使用道具 举报

发表于 2011-8-24 08:22 | 显示全部楼层
下载学习中~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 02:32 , Processed in 0.369498 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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