设为首页 | 收藏本站
首页>IT学院>办公自动化>正文
用Excel计算个人所得税的四套方案
WWW.DBIT.CN 2006-7-18 19:01:08 热度:
 

优点:简单明了,上手容易

缺点:if() 函数嵌套最多只能七层,而个调税计征采用的是九级累进,所以这个公式适用的月收入上限是 6 万。

【方案二】——辅助数据版:

在 E、F、G、H、I 五列插入辅助列(如表 2 所示)。

B2 =IF(A2<>"",ROUND(IF(A2>1600,A2-1600,0)*VLOOKUP(VLOOKUP(IF(A2>1600,A2-1600,0),$G$2:$G$10,1),$G$2:$I$10,2)-VLOOKUP(VLOOKUP(IF(A2>1600,A2-1600,0),$G$2:$G$10,1),$G$2:$I$10,3),2),"")

优点:克服 IF() 嵌套只能七层的缺陷,涵盖整个累进区间。累进算法资料独立,便于维护。公式也比较简洁,可读性强。

缺点:需要借助于辅助列,可移植性不强。

【方案三】——数组公式版:

B2: {=IF(A2<>"",ROUND(IF(AND(A2>0,A2<=1600),0,SUM(IF((A2-1600>={0,500,2000,5000,20000,40000,60000,80000,100000})+(A2-1600<{500,2000,5000,20000,40000,60000,80000,100000,100000000000})=2,(A2-1600)*{0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45}-{0,25,125,375,1375,3375,6375,10375,15375},0))),2),"")}

优点:同样克服了 IF 嵌套版不能涵盖全部九级累进区间的缺陷,且公式内数据相对容易维护,整个公式维护起来也比较简单。

缺点:数组公式的操作方法比较独特,每次修改后都要用“ Ctrl+Shift+Enter ”组合键加以识别,且可扩展性不如在后台运行的 VBA 代码。

P.S. :

“数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号 ({ }) 中。按 Ctrl+Shift+Enter 可以输入数组公式。”

【方案四】—— VBA 代码版:

“工具” -- 》“宏” -- 》“ Visual Basic 编辑器” -- 》“插入” -- 》“模块”

============= 复制以下代码至编辑窗口 ================

'计算个人收入调节税 (Individual Income Adjustment Tax)

Function iiatax(x,y)

Dim basicnum As Integer

Dim downnum As Variant, upnum As Variant, ratenum As Variant, deductnum As Variant

If y = 0 Then

basicnum = 1600 '定义中国公民个税起征点

ElseIf y = 1 Then

basicnum = 4800 '定义外国公民个税起征点

Else: basicnum = Null

End If

downnum = Array(0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000) '定义累进区间下限

upnum = Array(500, 2000, 5000, 20000, 40000, 60000, 80000, 100000, 100000000) '定义累进区间上限

ratenum = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45) '定义累进税率

deductnum = Array(0, 25, 125, 375, 1375, 3375, 6375, 10375, 15375) '定义累进速算扣除数

If IsNumeric(x) = False Then

MsgBox ("请检查计税工资是否为数值!")

End If

If x < 0 Then

MsgBox ("计税工资为负,重新输入!")

End If

If x >= 0 And x < basicnum Then

iiatax = 0

End If

For i = 0 To UBound(downnum)

If x - basicnum > downnum(i) And x - basicnum <= upnum(i) Then

iiatax = Round( ( x - basicnum ) * ratenum(i) - deductnum(i), 2)

End If

Next i

End Function

============= 复制以上代码至编辑窗口 ================

P.S. :

1、iiatax(参数1,参数 2 ),参数 1 引用计税工资,参数 2 用“ 0 ” 表示中国公民的所得税起征点,用“ 1 ” 表示外国公民的起征点。

2、使用时可以像使用函数一样,如“ B2=iiatax(A2,0) ”,或者“ B2=iiatax(6500,1) ”。

本新闻共2页,当前在第2页  1  2  

 
上一篇:Office 2007中关闭页面空白的方法
下一篇:让PowerPoint文档中的数据图表动起来
打印】【关闭
  相关文章:
·在Excel中只打印图表以外区域的技·Excel中只选中包含文本的单元格的
·Excel单元格内按时间规律显示名言·Excel中巧用右键拖移实现快速复制
·同一Excel数据源同时使用多种类型·Excel 2003命令在Excel 2007中的位
·利用Excel 2007完成试卷分析·用Excel做数据分析—移动平均
·用Excel做数据分析抽样分析工具·实现Excel动态链接外部数据库
·用Excel做数据分析 相关系数与协方·用Excel做数据排序的常用方法与技
·Excel数据排序很简单 四种方法任你·Excel做自动统计课时数的彩色课程
·巧用Excel函数也能批量打印明信片·用Excel做数据分析:排位与百分比
☆联姻学院☆

保养电脑的26个窍门
文件夹删除不掉怎么办?
教你如何用手工迅速剿灭QQ广告
“熊猫烧香”病毒的病毒描述和
在Excel中只打印图表以外区域
Excel中只选中包含文本的单元
Windows XP操作系统的几个实用
用XP系统自带网络诊断程序解决
风雨雷电→自然现象动画实战技
Flash遮罩特效之百叶窗效果
十二个Dreamweaver鲜为人知的
如何用 Dreamweaver 批量做we
JavaScript的系统函数学习
Java之父:关于Java我也有遗憾
排除网上邻居使用4大常见麻烦
解除上网限制IP和MAC捆绑的破