Excel精英培训网

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

[练习题] 第六讲练习题:正反计算个税和工资(奖励积分3分)

  [复制链接]
发表于 2012-2-17 22:33 | 显示全部楼层
提示3:好像不正确
  工资8775  那个税是=(8775-3500)*0.2-555=500      依据提示3       工资税额=(500+555)/0.2+3500=8775   没问题
如果工资9500 个税=(9500-3500)*0.2-555=645       依据提示3    税率表中找到比税额大又最近的速算扣除数,那么这一层次就是所求税率和速算扣除数。 那就是 25%        1005  这一栏
工资=(645+1005)/0.25+3500=10100  和开始的9500不一致

回复

使用道具 举报

发表于 2012-2-18 09:04 | 显示全部楼层
Function Wgeshui(n As Double, x As Integer)
    If x = 1 Then
        Select Case n
        Case Is <= 3500
            Wgeshui = 0
        Case Is <= 5000
            Wgeshui = (n - 3500) * 0.03
        Case Is <= 8000
            Wgeshui = (n - 3500) * 0.1 - 105
        Case Is <= 12500
            Wgeshui = (n - 3500) * 0.2 - 555
        Case Is <= 38500
            Wgeshui = (n - 3500) * 0.25 - 1005
        Case Is <= 58500
            Wgeshui = (n - 3500) * 0.3 - 2755
        Case Is <= 83500
            Wgeshui = (n - 3500) * 0.35 - 5505
        Case Is > 83500
            Wgeshui = (n - 3500) * 0.45 - 13505
        End Select
    ElseIf x = 2 Then
        Select Case n
        Case Is <= 45
            Wgeshui = n / 0.03 + 3500
        Case Is <= 345
            Wgeshui = (n + 105) / 0.1 + 3500
        Case Is <= 1245
            Wgeshui = (n + 555) / 0.2 + 3500
        Case Is <= 7745
            Wgeshui = (n + 1005) / 0.25 + 3500
        Case Is <= 13745
            Wgeshui = (n + 2755) / 0.3 + 3500
        Case Is <= 22495
            Wgeshui = (n + 5505) / 0.35 + 3500
        Case Is > 22495
            Wgeshui = (n + 13505) / 0.45 + 3500
        End Select
    End If
End Function

点评

答案正确,奖励3积分  发表于 2012-2-21 18:13

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-2-18 11:07 | 显示全部楼层
Function WGeShui(n, x)
  If x = 1 Then
    If n <= 3500 Then
    WGeShui = 0
    ElseIf n <= 5000 Then
    WGeShui = (n - 3500) * 0.03
    ElseIf n <= 8000 Then
    WGeShui = (n - 3500) * 0.1 - 105
    ElseIf n <= 12500 Then
    WGeShui = (n - 3500) * 0.2 - 555
    ElseIf n <= 38500 Then
    WGeShui = (n - 3500) * 0.25 - 1005
    ElseIf n <= 58500 Then
    WGeShui = (n - 3500) * 0.3 - 2755
    ElseIf n <= 83500 Then
    WGeShui = (n - 3500) * 0.35 - 5505
    ElseIf n > 83500 Then
    WGeShui = (n - 3500) * 0.45 - 13505
    End If
  ElseIf x = 2 Then
    If n = 0 Then
    WGeShui = "不超过3500"
    ElseIf n <= 45 Then
    WGeShui = n / 0.03 + 3500
    ElseIf n <= 345 Then
    WGeShui = (n + 105) / 0.1 + 3500
    ElseIf n <= 1245 Then
    WGeShui = (n = 555) / 0.2 + 3500
    ElseIf n <= 7745 Then
    WGeShui = (n + 1005) / 0.25 + 3500
    ElseIf n <= 13745 Then
    WGeShui = (n + 2755) / 0.3 + 3500
    ElseIf n <= 22495 Then
    WGeShui = (n + 5505) / 0.35 + 3500
    ElseIf n > 22495 Then
    WGeShui = (n13505) / 0.45 + 3500
    End If
   End If
End Function

点评

答案正确,奖励3积分  发表于 2012-2-21 18:13

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-2-18 17:00 | 显示全部楼层
老师,提示3可能有误,不能按这个方法倒算。
举个例子,当工资为9055时,查表可知税率为20%,速算扣除数为555,所交个税应为556。
若按老师给的提示,在税率表中找到比税额大又最近的速算扣除数,那么这一层次就是所求税率和速算扣除数,那么速算扣除数为1005了,税率也变成了25%了,那么最终计算出的工资9744,与实际不符。
所以倒推应该计算临界值,以下是我的解答:
---------------------------------------------------------------------------------------------------------------------------------------------
Function Wgeshui(n, switch)
Dim x As Single
Dim y As Single
Dim z As Single
z = n - 3500
    If switch = 1 Then
        If z <= 0 Then
            x = 0
            y = 0
        ElseIf z <= 1500 Then
            x = 0.03
            y = 0
        ElseIf z <= 4500 Then
            x = 0.1
            y = 105
        ElseIf z <= 9000 Then
            x = 0.2
            y = 555
        ElseIf z <= 35000 Then
            x = 0.25
            y = 1005
        ElseIf z <= 55000 Then
            x = 0.3
            y = 2755
        ElseIf z <= 80000 Then
            x = 0.35
            y = 5505
        ElseIf z > 80000 Then
            x = 0.45
            y = 13505
        End If
        Wgeshui = z * x - y
    ElseIf switch = 2 Then
        If n <= 45 Then
            x = 0.03
            y = 0
        ElseIf n <= 345 Then
            x = 0.1
            y = 105
        ElseIf z <= 1245 Then
            x = 0.2
            y = 555
        ElseIf z <= 7745 Then
            x = 0.25
            y = 1005
        ElseIf z <= 13745 Then
            x = 0.3
            y = 2755
        ElseIf z <= 22495 Then
            x = 0.35
            y = 5505
        ElseIf z > 22495 Then
            x = 0.45
            y = 13505
        End If
        Wgeshui = (n + y) / x + 3500
    End If
End Function

点评

答案正确,奖励3积分  发表于 2012-2-21 18:13

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-2-19 12:21 | 显示全部楼层
老师 您好  您看一下我的这个答案是否正确
Function Wgeshui(n, x)    '这里x即是开关
                  If x = 1 Then
                        If n - 3500 <= 1500 Then
                            Wgeshui = (n - 3500) * 0.03 - 0
                        ElseIf n - 3500 <= 4500 Then
                            Wgeshui = (n - 3500) * 0.1 - 105
                        ElseIf n - 3500 <= 9000 Then
                            Wgeshui = (n - 3500) * 0.2 - 555
                        ElseIf n - 3500 <= 35000 Then
                            Wgeshui = (n - 3500) * 0.25 - 1005
                        ElseIf n - 3500 <= 55000 Then
                            Wgeshui = (n - 3500) * 0.3 - 2755
                        ElseIf n - 3500 <= 80000 Then
                            Wgeshui = (n - 3500) * 0.35 - 5505
                        ElseIf n - 3500 > 80000 Then
                            Wgeshui = (n - 3500) * 0.45 - 13505
                        End If
                  
                  ElseIf x = 2 Then
                     If n <= 45 Then
                        Wgeshui = (n) / 0.03 + 3500
                    ElseIf n <= 345 Then
                        Wgeshui = (n + 105) / 0.1 + 3500
                    ElseIf n <= 1245 Then
                        Wgeshui = (n + 555) / 0.2 + 3500
                    ElseIf n <= 7745 Then
                        Wgeshui = (n + 1005) / 0.25 + 3500
                    ElseIf n <= 13745 Then
                        Wgeshui = (n + 2755) / 0.3 + 3500
                    ElseIf n <= 22495 Then
                        Wgeshui = (n + 5505) / 0.35 + 3500
                    ElseIf n > 22495 Then
                        Wgeshui = (n + 13505) / 0.45 + 3500
                    End If
                        
End If
End Function

点评

工资为300时,个税为负数了  发表于 2012-2-21 18:10
回复

使用道具 举报

发表于 2012-2-19 13:26 | 显示全部楼层
本帖最后由 ykymj 于 2012-2-19 15:28 编辑

Function wgeshui(n As Range, x As Range)
If x = 1 Then
  If n - 3500 < 0 Then
    wgeshui = 0
    ElseIf n - 3500 <= 1500 Then
    wgeshui = (n - 3500) * 0.03
    ElseIf n - 3500 <= 4500 Then
    wgeshui = (n - 3500) * 0.1 - 105
    ElseIf n - 3500 <= 9000 Then
    wgeshui = (n - 3500) * 0.2 - 555
    ElseIf n - 3500 <= 35000 Then
    wgeshui = (n - 3500) * 0.25 - 1005
    ElseIf n - 3500 <= 55000 Then
    wgeshui = (n - 3500) * 0.3 - 2755
    ElseIf n - 3500 <= 80000 Then
    wgeshui = (n - 3500) * 0.35 - 5505
    Else: wgeshui = (n - 3500) * 0.45 - 13505
    End If
   
ElseIf x = 2 Then
    If n > 22495 Then
    wgeshui = (n + 13505) / 0.45 + 3500
    ElseIf n > 13745 Then
    wgeshui = (n + 5505) / 0.35 + 3500
    ElseIf n > 7745 Then
    wgeshui = (n + 2755) / 0.3 + 3500
    ElseIf n > 1245 Then
    wgeshui = (n + 1005) / 0.25 + 3500
    ElseIf n > 345 Then
    wgeshui = (n + 555) / 0.2 + 3500
    ElseIf n > 45 Then
    wgeshui = (n + 105) / 0.1 + 3500
    ElseIf n > 0 Then
    wgeshui = n / 0.03 + 3500
    Else: wgeshui = "<=3500"
    End If
Else: MsgBox "B列输入有误,请重新输入。提示:A列若为工资,请在B列输入1计算个税,否则B列输入2计算工资"
End If


   
End Function

点评

返回的是错误值,请查看  发表于 2012-2-21 18:11
回复

使用道具 举报

发表于 2012-2-19 15:14 | 显示全部楼层
C07 禾火亦

复制代码

回复

使用道具 举报

发表于 2012-2-19 15:17 | 显示全部楼层
C07 禾火亦
  1. Function Wgeshui(n, x)
  2.     Dim k As Long
  3.     k = n - 3500
  4.     If x = 1 Then
  5.         If k <= 0 Then
  6.             Wgeshui = 0
  7.         ElseIf k <= 1500 Then
  8.             Wgeshui = k * 0.03
  9.         ElseIf k <= 4500 Then
  10.             Wgeshui = k * 0.1 - 105
  11.         ElseIf k <= 9000 Then
  12.             Wgeshui = k * 0.2 - 555
  13.         ElseIf k <= 35000 Then
  14.             Wgeshui = k * 0.25 - 1005
  15.         ElseIf k <= 55000 Then
  16.             Wgeshui = k * 0.3 - 2755
  17.         ElseIf k <= 80000 Then
  18.             Wgeshui = k * 0.35 - 5505
  19.         ElseIf k > 80000 Then
  20.             Wgeshui = k * 0.45 - 13505
  21.         End If
  22.     End If
  23.     If x = 2 Then
  24.         If n = 0 Then
  25.             Wgeshui = "工资小于3500"
  26.         ElseIf n < 45 Then
  27.             Wgeshui = n / 0.03 + 3500
  28.         ElseIf n < 345 Then
  29.             Wgeshui = (n + 105) / 0.1 + 3500
  30.         ElseIf n < 1245 Then
  31.             Wgeshui = (n + 555) / 0.2 + 3500
  32.         ElseIf n < 7745 Then
  33.            Wgeshui = (n + 1005) / 0.25 + 3500
  34.         ElseIf n < 13745 Then
  35.             Wgeshui = (n + 2755) / 0.3 + 3500
  36.         ElseIf n < 22945 Then
  37.             Wgeshui = (n + 5505) / 0.35 + 3500
  38.         ElseIf n > 22945 Then
  39.             Wgeshui = (n + 13505) / 0.45 + 3500
  40.         End If
  41.     End If
  42. End Function
复制代码

点评

答案正确,奖励3积分  发表于 2012-2-21 18:13

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-2-19 23:26 | 显示全部楼层
反算有误差,不知道我做的对不对
E组长:qzc804030
  1. Function GeShui(gz)
  2. If gz <= 3500 Then
  3. GeShui = 0
  4. ElseIf gz <= 5000 Then
  5.   GeShui = (gz - 3500) * 0.03
  6.   ElseIf gz <= 8000 Then
  7.    GeShui = (gz - 3500) * 0.1 - 105
  8.     ElseIf gz <= 12500 Then
  9.      GeShui = (gz - 3500) * 0.2 - 555
  10.       ElseIf gz <= 38500 Then
  11.        GeShui = (gz - 3500) * 0.25 - 1005
  12.          ElseIf gz <= 58500 Then
  13.            GeShui = (gz - 3500) * 0.3 - 2755
  14.         ElseIf gz <= 83500 Then
  15.      GeShui = (gz - 3500) * 0.35 - 5505
  16.    ElseIf gz > 83500 Then
  17.   GeShui = (gz - 3500) * 0.45 - 13505
  18. End If
  19. End Function
  20. Function Wgeshui(n, x)
  21. If x = 1 Then
  22.   If n <= 5000 And n > 3500 Then
  23.    Wgeshui = (n - 3500) * 0.03
  24.     ElseIf n <= 8000 Then
  25.      Wgeshui = (n - 3500) * 0.1 - 105
  26.       ElseIf n <= 12500 Then
  27.        Wgeshui = (n - 3500) * 0.2 - 555
  28.         ElseIf n <= 38500 Then
  29.          Wgeshui = (n - 3500) * 0.25 - 1005
  30.           ElseIf n <= 58500 Then
  31.             Wgeshui = (n - 3500) * 0.3 - 2755
  32.              ElseIf n <= 83500 Then
  33.               Wgeshui = (n - 3500) * 0.35 - 5505
  34.                ElseIf n > 83500 Then
  35.                 Wgeshui = (n - 3500) * 0.45 - 13505
  36.                  End If
  37.               ElseIf x = 2 Then
  38.             If n > 0 And n <= 45 Then
  39.            Wgeshui = (n + 0) / 0.03 + 3500
  40.           ElseIf n <= 345 Then
  41.          Wgeshui = (n + 105) / 0.1 + 3500
  42.         ElseIf n <= 1245 Then
  43.        Wgeshui = (n + 555) / 0.2 + 3500
  44.       ElseIf n <= 7745 Then
  45.      Wgeshui = (n + 1005) / 0.25 + 3500
  46.     ElseIf n <= 13745 Then
  47.    Wgeshui = (n + 2755) / 0.3 + 3500
  48.   ElseIf n <= 24495 Then
  49. Wgeshui = (n + 5505) / 0.35 + 3500
  50. ElseIf n > 24495 Then
  51. Wgeshui = (n + 13505) / 0.45 + 3500
  52. End If
  53. End If
  54. End Function
复制代码

点评

工资为300时,结果为负了  发表于 2012-2-21 18:13
回复

使用道具 举报

发表于 2012-2-20 08:11 | 显示全部楼层
本帖最后由 wenchduan 于 2012-2-21 11:25 编辑
  1. Function Wgeshui(n, x)
  2. Dim yl
  3. If x = 1 Then
  4. yl = n - 3500
  5. Select Case yl
  6. Case Is <= 0
  7. Wgeshui = 0
  8. Case Is < 1500
  9. Wgeshui = yl * 3 / 100
  10. Case Is < 4500
  11. Wgeshui = yl * 10 / 100 - 105
  12. Case Is < 9000
  13. weshui = yl * 20 / 100 - 555
  14. Case Is < 35000
  15. Wgeshui = yl * 25 / 100 - 1005
  16. Case Is < 55000
  17. Wgeshui = yl * 30 / 100 - 2755
  18. Case Is < 80000
  19. Wgeshui = yl * 35 / 100 - 5505
  20. Case Is >= 80000
  21. Wgeshui = yl * 45 / 100 - 13505
  22. End Select
  23. ElseIf x = 2 Then
  24. Select Case n
  25. Case Is >= 22495
  26. Wgeshui = (n + 13505) * 100 / 45 + 3500
  27. Case Is < 13745
  28. Wgeshui = (n + 5505) * 100 / 35 + 3500
  29. Case Is < 7845
  30. Wgeshui = (n + 2755) * 100 / 30 + 3500
  31. Case Is < 1245
  32. weshui = (n + 1005) * 100 / 25 + 3500
  33. Case Is > 450
  34. Wgeshui = (n + 555) * 100 / 20 + 3500
  35. Case Is < 345
  36. Wgeshui = (n + 105) * 100 / 10 + 3500
  37. Case Is <= 45
  38. Wgeshui = n * 100 / 3 + 3500
  39. Case Is < 0
  40. Wgeshui = "工资低于3500"
  41. End Select
  42. End If
  43. End Function
复制代码

点评

正算没问题,反算错了  发表于 2012-2-21 18:15
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 20:03 , Processed in 0.194861 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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