2016年04月

用Excel计算个人工资所得税的四套方案
一、个人工薪所得纳税相关背景知识
  1、个人取得的工资、薪金所得,是指个人因任职或者受雇而取得的工资、薪金、奖金、年终加薪、劳动分红、津贴、补贴以及与任职或受雇有关的其他所得。
  个人所得税是对按税法规定具有纳税义务的中国公民和外籍人员的个人收入或所得征收的一种税。
  2、工资、薪金所得项目税率表:
  表1
  3、工资、薪金所得按以下步骤计算缴纳个人所得税:
  每月取得工资收入后,先减去个人承担的基本养老保险金、医疗保险金、失业保险金,以及按省级政府规定标准缴纳的住房公积金,再减去费用扣除额1600元/月(来源于的所得以及外籍人员、华侨和香港、澳门、台湾同胞在中国境内的所得每月还可附加减除费用3200元),为应纳税所得额,按5%至45%的九级超额累进税率计算缴纳个人所得税。
  计算公式是:应纳个人所得税税额=应纳税所得额×适用税率—速算扣除数
  例:王某当月取得工资收入9000元,当月个人承担住房公积金、基本养老保险金、医疗保险金、失业保险金共计1000元,费用扣除额为1600元,则王某当月应纳税所得额=9000-1000-1600=6400元。应纳个人所得税税额=6400×20%-375=905元。
  4、个人取得工资、薪金所得应缴纳的个人所得税,统一由支付人负责代扣代缴,支付人是税法规定的扣缴义务人。
  5、根据十届全国人大常委会第十八次全体会议《关于修改〈中华人民共和国个人所得税法〉的决定》,自2006年1月1日起,工薪所得个调税起征点执行中国公民1600元、外籍人士4800元的标准,计征方法仍执行原定九级累进方案(如表1所示)。
二、工薪所得个调税的Excel计算解决方案
  表2
【方案一】——IF嵌套版:
  优点:简单明了,上手容易
【方案二】——辅助数据版:
  在E、F、G、H、I五列插入辅助列(如表2所示)。
  缺点:需要借助于辅助列,可移植性不强。
【方案三】——数组公式版:
  优点:同样克服了IF嵌套版不能涵盖全部九级累进区间的缺陷,且公式内数据相对容易维护,整个公式维护起来也比较简单。
  缺点:数组公式的操作方法比较独特,每次修改后都要用Ctrl+Shift+Enter组合键加以识别,且可扩展性不如在后台运行的VBA代码。
  P.S. :
  数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号({})中。按Ctrl+Shift+Enter可以输入数组公式。
两个表格核对重复数据
【方案四】——VBA代码版:
  工具 -- 》宏--》VisualBasic编辑器--》插入--》模块
  =============复制以下代码至编辑窗口================
  计算个人收入调节税(IndividualIncomeAdjustmentTax)
  Function iiatax(x,y)
  Dim basicnum As Integer
  Dim downnum As Variant, upnum As Variant,ratenumAsVariant,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)定义累进区间下限
  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)。
如何避免以下情况
ETXCEL计算工资,经常重复名字,用条件格式显示相同的名字,有的可以显示,有的因为手误输入,没有显示出来,今个月,到发工资时才发现重复了一个人名,如何可以杜绝这种失误?? THS。。
1、用公式不能直接解决输入名字时的手误:如,将“张大”误输入“张达”,用任何公式或条件格式,都不回视为重复。
解决办法有:
在新表名字列(如A列)后增加辅助B列,在B2输入“=VLOOKUP(A2,上月正确名字区域,1,)”,向下复制到需要处,B列返回错误符号者,即是本月笔误或本月新增加人员;核对后,再将B列删除。
2、例如 姓名在A列,B列为空
在B1输入公式
=COUNTIF(A:A,A1)
向下填充到需要的地方,值就是对应的A列中的姓名在A列出现的次数,如果值大于1就是重复了
3、A、姓名较多,手工输入有可能出差错,导致输入重名
  这种情况解决的办法是将所有员工的姓名单独放在一列中,然后在需要用到姓名的地方,使用“数据有效性”中的“序列”定义,每次要输姓名的时候,直接按下拉按钮选择即可,既提高录入速度,也不会因操作失误搞错人名;
B员工较多,有重名现象
  这种情况也比较常见,最好的做法是在工资表里增加员工编号(没有重复)或者身份证号。另外新建一张表,用来存储员工的基本信息,在工资表里使用Vlookup()来根据员工编号或者身份证号查询员工姓名,这样出错的机率会大大降低。
C工资表有一定的继承性,通常是这个月做的表就在上个月做的基础上修改,有员工进出时,容易误删人名或者该删的未删,导致出错
  这种情况也比较常见,利用Excel的基本功能做出来的工资表,手工干预的操作比较多,如果不够仔细的话,这种错误很普遍。解决的办法有两个,一个是对表格做技术升级,使用VBA配合函数做一个简单的工资计算系统,让系统自动判断哪些人应该做在当月的工资表里;另一个是做表的人在技术达不到的情况下仔细仔细再仔细、认真认真再认真,多核对几遍。
4、我也在单位做工资,也出现同样的问题,解决办法是:给每个员工一个唯一的编号,这样无论这个员工到哪个部门,都不会影响工资的计算,也不会出现重名的现象
Excel制作打印工资表
使用Excel做工资统计,是很多中、小企业都会做的,但是如何让工资条打印既快速又漂亮是很多人头痛的问题,下面就提供几种综合解决方案,有需要的朋友可以根据自己的实际情况选择一种方案来操作。
  一、人少好办事
  对于一些小企业或者办公室类型的公司来说,公司全体人数也不多,少的几个人,多的也
就十几、二十人的样子,即便是每个人的工资条打成一张纸,也不会造成什么大的浪费,所以我们可以简单设置让其每条记录打印在一张纸上,这样是最简单快捷的方法了。
  这里利用的是一种类似的“页眉”的方式实现每一页打印后都有一个“标题行”,这样保证工资的明细项目在工资条上体现,然后每一个“标题行”下方跟一条记录,最后打印出的效果就是工资条了,具体操作如下。
  在Excel做好的工资表中,执行“文件”→“页面设置”命令,在打开的“页面设置”对话框中切换到“工作表”标签,单击“顶端标题行”右侧的按钮,在工作表中选择工资表的头部区域,然后单击回车键,使“页面设置”对话框如图 1所示,然后单击“确定”按钮使设置生效。
 
图 1 选择工资表的头部
  接下来单击“打印预览”按钮,使工作表呈打印预览状态,然后在“打印预览”对话框中单击“页边距”按钮,使打印预览对话框中显示出调整页边距的虚线,使用鼠标拖动“下边距”虚线至工作表第二行处,即最终效果为页面中显示的只有两行,一行是工资细目,一行是数据(如图
2),接下来就打印吧,打印出的每页纸中就是一位员工的工资条了。
 
图 2 拖动下边距
  小提示:这种打印工资条的方法是最简单,最安全(不容易出错),最快速的方法,当然弊端就是太浪费纸张了,如果公司人数稍微多一点,就不太适合了,不过你可以试试下面的方法。
  二、妙用排序,轻松打印工资条
  工资条的最终结果就是一行工资明细目,一行员工对应的数据,通常做好的工资表都是只有第一行有数据工资细目,下面全部是数据,如果能从第二行开始,每一行的结尾都添加一行工资细目的数据就好了。这一点可以使用排序轻松实现,具体实现方法如何,就请接着往下看吧。
  假设当前工资表中有300行数据,显然使用第一种方法是行不通的。首先复制第一行的工资细目数据,从300行之后的任一行粘贴,并使用填充柄拖动复制300行。
  接下来在A列的前面插入两列,第一列使用填充柄输入序号,从1一直拉到N(本例操作时为1000,这个N可根据自己的喜好以及实际需求,基本上只要大于工资表中数据的两倍即可),主要用来打印工资条后下次重新做工资时恢复表格顺序。第二列从第二行开始,依次输入1、3、5、7,然后选中这四个单元格,使用填充柄填充至员工数据结束位置。在下方的工资细目数据区,从第一行依次输入2、4、6、8,然后选中这四个单元格,使用填充柄填充至结束,大致效果如图 3所示。