手把手教你做好工资表(中)

  • 来源:人力资源
  • 关键字:
  • 发布时间:2017-08-20 15:12

  在工资表技术中,需要解决两个核心的操作问题:

  1.如何按照指定的月份,自动生成应发工资员工名单的问题。

  2.如何在员工存在异动(调岗、调薪、转正、参保)的情况下,按照指定月份,准确取得员工当期最新数据(当期调整的部门、薪酬、职级等)的问题。

  解决这两个问题,是高效制作工资表的核心问题,我在工资表技术中给出了一个解决方案,希望抛砖引玉,对广大读者有所启发和帮助。在这篇文章中我们先来谈一下第一个问题:如何利用公司的员工信息表,自动获取指定月份的应发工资名单:

  我在上一篇文章中(详见本刊2017年7月刊第34至36页)提到过,如果用EXCEL处理员工信息数据,应该有三个表,即“员工个人信息表”、“员工企业信息表”、“员工异动信息表”。对于制作工资表而言,我们重点利用的是后两个表的内容。我们先来看一下这两个表在使用过程中的注意事项。

  员工企业信息表的设计与维护

  设计员工企业信息表时,应包含以下内容(如下图所示):

  1.工号、姓名(离职员工的工号原则上不再重复使用)。

  2.部门信息:此处可以展开多列,包含分公司、一级部门、二级部门等信息。

  3.职级信息:包含了员工的岗位名称、职位、职位类别、级别等信息。

  4.固定薪酬信息:包括了基本工资、岗位工资等非弹性薪酬信息。

  5.保险信息:五险一金个人应缴纳部分。

  6.特殊补贴信息:企业给予特定员工或岗位的其他固定补贴。

  维护注意事项:

  1.新增员工直接在末行录入即可(之后可以按部门信息为关键词排序)。

  2.部门信息、职级信息、保险和特殊补贴信息可以依据企业具体情况自行设定展开。

  3.固定薪酬信息主要指的是基本工资、岗位工资、固定补贴等一些非考核性固定薪酬项目,这些项目一般只与员工考勤状况相关。

  4.一定要详细记录入职时间和离职时间信息,录入的时间格式必须正确。

  员工企业信息表的计算准备

  将表格设计好后,增加辅助列(辅助列就是为了下一步计算而增加的,不属于源数据内容的列),增加后的效果如下图所示:

  其中H列至L列为判断计算辅助列,B列为选择计算辅助列,具体解释如下:

  1.表格中C2与E2存放的是“指定月份”的开始和结束时间,示例中指定的是2017年7月份这个特定的时间

  2.H列“已离职判断”:该列的作用是判断出在本期之前就离职的员工。

  计算逻辑:离职时间不为空,同时离职时间在指定月份1号之前。

  计算公式:H6=IF(AND(G6<>“”,G6<$C$2),1,0),向下复制即可。

  计算结果:为1表示期初之前已离职。

  3.I列“当期离职判断”:该列的作用是判断出在本期之内离职的员工。这个辅助列单独存在有利于以后快速地取得当期离职人员名单。

  计算逻辑:离职时间不为空,同时离职时间在指定月份1号之后,月末之前。

  计算公式:I6=--AND(G6>=$C$2,G6<=$E$2),向下复制即可。

  计算结果:为1表示当期离职。

  4.J列“当期入职判断”:该列的作用是判断出在指定月份内入职的员工。这个辅助列单独存在有利于以后快速地取得当期入职人员名单。

  计算逻辑:入职时间在指定月份1号之后,月末之前。

  计算公式:J6=--AND(F6>=$C$2,F6<=$E$2),向下复制即可。

  计算结果:为1表示在指定月份当期在职。

  5.K列“在职判断”:该列的作用是判断出在指定月份1号之前正常在职的员工(在指定月份1日之前入职并且不存在任何离职行为)。

  计算逻辑:离职、当期离职、档期入职判断同时为0。

  计算公式:K6=--AND(H6=0,I6=0,J6=0),向下复制即可。

  计算结果:为1表示正常在职。

  6.L列“工资表人员判断”:该列的作用是判断出在指定月份内应发工资的员工。

  计算逻辑:正常在职、当月入职、当月离职的人都应该计算工资。

  计算公式:L6=--OR(K6=1,J6=1,I6=1),向下复制即可。

  计算结果:为1表示属于当期应发工资员工。

  7.B列:该列的作用是取得应发工资员工名单的“序号”与“数量”,为下一步使用VLOOKUP生成指定月份应发工资人员清单提供“ID”。

  计算逻辑:利用混合引用技巧,动态统计到目前为止我是第几个满足条件的人。

  计算公式:B6=COUNTIF($L$6:L6,1),向下复制即可。

  B4=MAX(B6:B10)

  计算结果:B4结果为应发工资总人数,B6结果为满足条件的序号,不满足条件的员工序号,就会出现重复值(该重复值将被下一步使用VLOOKUP函数查找引用时忽略)。

  生成指定月份的应发工资员工名单

  如上图所示,左边就是刚才我们处理的“员工企业信息表”(此处我们隐藏了H至L列的辅助列)。我们重点来看一下右边(N至U列)的区域,重点讲解如下:

  1.N4单元格。其目的是将符合条件人员总数引用过来,便于生成新表的序号。

  计算公式:N4=B4

  2.N7单元格。其目的是根据总人数,自动生成人员序号,比如:本期满足发工资的人员一共20人,则序号自动从1开始,到20结束。后面的均为控制。N6永远为1,所以不做公式,从N7开始做公式,并向下复制(应根据企业人数多预留一些位置)。

  计算公式:N7=IF(N6>=$N$4,“”,N6+1),向下复制即可。

  3.O6与P6单元格。其目的是使用VLOOKUP函数,查找和引用“员工序号为1”的员工的工号和姓名,公式向下复制后,逐一找出序号2、3……直至最后一个符合条件员工的工号与姓名(O6是工号,P6是姓名)。

  计算公式:O6=IFERROR(VLOOKUP(N6,$B$6:$D$999,2,0),“”),向下复制即可。

  P6=IFERROR(VLOOKUP(N6,$B$6:$D$999,3,0),“”),向下复制即可。

  4.取值区域。根据已经取得的工号,把员工的基础数据引用过来,比如部门、基本工资等等信息。

  在维护“员工企业信息表”的时候,绝大多数HR录入的都是员工刚进入公司时的数据,它是一个静态的数据记录,但随着时间的推移,员工就会出现类似转正、调岗、调薪这样的正常变化,所以在计算工资的时候,很难甚至不可能从原始记录(“员工企业信息表”)中取得当下员工的相关数据,我们就需要将“员工异动表”一起考虑进来,综合地取值。所以在上图中,“取值区域”在指定的月份内,要先行扫描“异动信息”后才能最终取到正确的值,这个技术我们在下一篇文章中再详细阐述。

  (未完待续)

  专栏作者/孙炜

关注读览天下微信, 100万篇深度好文, 等你来看……