ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 根据工资实发数倒算应发数的自定义函数

根据工资实发数倒算应发数的自定义函数

作者:绿色风 分类: 时间:2022-08-18 浏览:145
楼主
amulee
有些福利比较好的公司会为员工承担部分工资或者奖金的个人所得税,即保证员工到手拿到多少工资,然后公司来交税。也就是通过员工的实发数来倒算应发数。

首先,我们需要一个计算个人所得税的自定义函数,代码如下:
  1. '******计算个人所得税
  2. '******第一个参数为应发数,第二个参数为扣除数标准,1表示中国人,其他表示外国人
  3. Function WTax(ByVal IncTotal As Double, ByVal MyType As Integer)
  4.     Dim dblKZS As Double    '扣除数
  5.     '判断是中国人还是外国人来计算扣除数
  6.     dblKZS = IIf(MyType = 1, 2000, 4800)
  7.     If (IncTotal - dblKZS) < 0 Then
  8.         WTax = 0
  9.     Else
  10.         Select Case (IncTotal - dblKZS)
  11.             Case Is <= 500
  12.                   WTax = (IncTotal - dblKZS) * 0.05
  13.             Case Is <= 2000
  14.                   WTax = (IncTotal - dblKZS) * 0.1 - 25
  15.             Case Is <= 5000
  16.                   WTax = (IncTotal - dblKZS) * 0.15 - 125
  17.             Case Is <= 20000
  18.                   WTax = (IncTotal - dblKZS) * 0.2 - 375
  19.             Case Is <= 40000
  20.                   WTax = (IncTotal - dblKZS) * 0.25 - 1375
  21.             Case Is <= 60000
  22.                   WTax = (IncTotal - dblKZS) * 0.3 - 3375
  23.             Case Is <= 80000
  24.                   WTax = (IncTotal - dblKZS) * 0.35 - 6375
  25.             Case Is <= 100000
  26.                   WTax = (IncTotal - dblKZS) * 0.4 - 10375
  27.             Case Is > 100000
  28.                   WTax = (IncTotal - dblKZS) * 0.45 - 15375
  29.         End Select
  30.     End If
  31.     WTax = WorksheetFunction.Round(WTax, 2)
  32. End Function
根据实发数倒算应发数的自定义函数如下:
  1. '******通过实发数倒算应发数
  2. '******第一个参数为实发数
  3. '******第二个参数表示当月之前是否发过工资,若发过则填写应发数,若没有发过则填写0
  4. '******第三个参数为扣除数标准,1表示中国人,其他表示外国人
  5. Function Inc2IncTax(dblSF As Double, dblQYF As Double, MyType As Integer)
  6.     Dim dblKCS As Double    '扣除数
  7.     Dim dblQSF As Double    '前实发
  8.     Dim dblZSF As Double    '总实发
  9.     Dim dblSSS As Double    '速算扣除数
  10.     Dim dblZSL As Double    '税率
  11.     dblKCS = IIf(MyType = 1, 2000, 4800)    '扣除数
  12.     '计算前面的实发
  13.     dblQSF = dblQYF - WTax(dblQYF, MyType)
  14.     '计算总的实发
  15.     dblZSF = dblQSF + dblSF
  16.     '根据总实发计算税率和扣除数
  17.     Select Case dblZSF - dblKCS
  18.         Case Is < 0
  19.             dblSSS = 0
  20.             dblZSL = 0
  21.         Case 0 To 475
  22.             dblSSS = 0
  23.             dblZSL = 0.05
  24.         Case 475 To 1825
  25.             dblSSS = 25
  26.             dblZSL = 0.1
  27.         Case 1825 To 4375
  28.             dblSSS = 125
  29.             dblZSL = 0.15
  30.         Case 4375 To 16375
  31.             dblSSS = 375
  32.             dblZSL = 0.2
  33.         Case 16375 To 31375
  34.             dblSSS = 1375
  35.             dblZSL = 0.25
  36.         Case 31375 To 45375
  37.             dblSSS = 3375
  38.             dblZSL = 0.3
  39.         Case 45375 To 58375
  40.             dblSSS = 6375
  41.             dblZSL = 0.35
  42.         Case 58375 To 70375
  43.             dblSSS = 10375
  44.             dblZSL = 0.4
  45.         Case Is > 70375
  46.             dblSSS = 15375
  47.             dblZSL = 0.45
  48.     End Select
  49.     Inc2IncTax = WorksheetFunction.Round((dblZSF - dblSSS - dblKCS * dblZSL) / (1 - dblZSL) - dblQYF, 2)
  50. End Function
使用发放如下:
1、比如中国员工当月实发工资2500元,只要输入以下公式:
  1. =inc2inctax(2500,0,1)
2、如果是外国员工,当月之前已经应发工资50000元,本月还要实发5000元奖金,计算公式如下。计算得出的是这笔5000元奖金的应发数,其与实发数之间的差额即为扣税:
  1. =inc2inctax(5000,50000,2)



根据实发数倒算应发数.rar
2楼
亡者天下
学习来了
3楼
纵鹤擒龙水中月
学习

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap