返回首页
当前位置: 主页 > Excel教程 > Excel2013教程 >

Excel实现个人所得税计算公式及实现方法详解

时间:2013-08-03 01:21来源:Office教程学习网 www.office68.com编辑:麦田守望者

文章介绍excel个人所得税计算公式以及思路解释。另外还介绍了使用自定义函数来简化excel计算个人所得税。

  随着2011年9月新个人所得税起征点改为3500元之后,excel个人所得税计算公式也稍有变化。

excel个人所得税计算公式一

  如下图所示是excel个人所得税计算公式的一个截图。

excel个人所得税计算公式

  C2单元格个人所得税计算公式为:

=ROUND(MAX((B2-3500)*5%*{0.6,2,4,5,6,7,9}-5*{0,21,111,201,551,1101,2701},0),2)

  然后下拉公式复制,可以计算出其余人员的个人所得税。

  excel个人所得税计算公式为:(应发工资-个税起征点金额)*税率-速算扣除数

  上面的excel个人所得税计算公式,思路讲解:
  (B2-3500)是个人所得税的应纳税所得额,{0.6,2,4,5,6,7,9}是一个数组。
  0.05*{0.6,2,4,5,6,7,9}={0.03,0.1,0.2,0.25,0.3,0.35,0.45} 是个人所得税的税率公式。
  5*{0,21,111,201,551,1101,2701}={0,105,555 ,1005,2755,5505,13505}是各级别的个人所得税扣除额。
  (B2-3500)*5%*{0.6,2,4,5,6,7,9}-5*{0,21,111,201,551,1101,2701} 是纳税额*各级个税税率-应扣额后的数字,如果税率对应的级别<=纳税额时,税率越大税额越大,符合所缴税款和所得相匹配的原理。如果税率对应的级别>纳税额时,税率越大税额越小,因为扣减了超额的扣除数,这样保证了,缴税数组里最大的那个一定是最符合相应税率的。
  
因为存在了纳税额<0的情况,即工资不满3500元,为避免出现税额为0,就在(B2-3500)*5%*{0.6,2,4,5,6,7,9}-5*{0,21,111,201,551,1101,2701}后添了一个“,0”的值 保证计算税额的公式MAX((B2-3500)*5%*{0.6,2,4,5,6,7,9}-5*{0,21,111,201,551,1101,2701},0)必定有个0值,在用MAX求最大时,出现的税额一定是符合税率的,并最小的数是0,不会出现负数。
  简而言之,MAX 函数取最大值,并设置下限值为0,即得出对应员工的个人所得税。
  最外面嵌套ROUND函数,就是4舍5入到2位小数。

excel个人所得税计算公式二

  使用下面的自定义函数完成excel个人所得税计算,使用方法参考文章最后的链接。
Function tax(Optional A As Double = 0, Optional y = 0, Optional z = 1)
'tax(月收入),tax(年收入,月收入)
Dim 分界, 税率, 扣除数
分界 = Array(0, 1500, 4500, 9000, 35000, 55000, 80000) '收入分界
税率 = Array(0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45) '各档税率
扣除数 = Array(0, 105, 555, 1005, 2755, 5505, 13505) '各档扣除数
b = 3500
If z = 1 Then
   If y = 0 Then x = A - b Else b = Application.Max(b - y, 0): x = (A - b) / 12
   For i = 6 To 0 Step -1
       If x > 分界(i) Then
           tax = (A - b) * 税率(i) - 扣除数(i)
           Exit For
       End If
   Next
  
ElseIf z = 2 Then
   If y = 0 Then x = A - b Else b = Application.Max(b - y, 0): x = (A - b) / 12
   If y = 0 And x < 0 Then tax = A
   For i = 6 To 0 Step -1
       If x > 分界(i) Then
            tax = (A - b) * (1 - 税率(i)) + 扣除数(i) + b
           Exit For
       End If
   Next

ElseIf z = 3 Then
    If y = 0 Then x = A - b Else b = Application.Max(b - y, 0): x = (A - b)
    If y = 0 And x < 0 Then tax = A
    For i = 6 To 0 Step -1
    If y = 0 Then
        If x > 分界(i) - tax(分界(i) + b, 0, 1) Then
            tax = (A - b - 扣除数(i)) / (1 - 税率(i)) + b
            Exit For
        End If
    Else
        If x > 12 * 分界(i) - tax(12 * 分界(i), 3500, 1) Then
            tax = (A - 扣除数(i)) / (1 - 税率(i))
            Exit For
        End If
    End If
    Next
   
ElseIf z = 4 Then
    If y = 0 Then x = A - b Else b = Application.Max(b - y, 0): x = (A - b)
    For i = 6 To 0 Step -1
      If y = 0 Then
        If x > 分界(i) - tax(分界(i) + b, 0, 1) Then
            tax = tax(A, 0, 1) / (1 - 税率(i))
            Exit For
        End If
     Else
        If x > 12 * 分界(i) - tax(12 * 分界(i), 3500, 1) Then
            tax = tax(A, 3500, 1) / (1 - 税率(i))
            Exit For
        End If
     End If
    Next

    ElseIf z = 5 Then
    For i = 6 To 0 Step -1
      If y = 0 Then
        If A > tax(分界(i) + b, 0, 1) Then
            tax = (A + 扣除数(i)) / 税率(i) + b
            Exit For
        End If
      Else
        If A > tax(12 * 分界(i), b, 1) Then
            tax = (A + 扣除数(i)) / 税率(i)
            Exit For
        End If
    End If
    Next
   
ElseIf z = 6 Then
    For i = 6 To 0 Step -1
        If y = 0 Then
           If A > tax(分界(i) + b, 0, 1) Then
              tax = (A * (1 - 税率(i)) + 扣除数(i)) / 税率(i) + b
              Exit For
           End If
        Else
           If A > tax(12 * 分界(i), b, 1) Then
              tax = (A * (1 - 税率(i)) + 扣除数(i)) / 税率(i)
              Exit For
           End If
         End If
    Next
   
End If
tax = Round(tax + 0.0001, 2)
End Function

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2013 excel2003 excel技巧 excel教程 excel实例教程
------分隔线----------------------------
推荐内容
猜你感兴趣