在中小企业中,人事部门通常还需要根据工作表来生成工资单。在Excel中可以轻易地完成这项任务。下面我们介绍一个应用函数来实现的技巧。
这是一份工作表,我们要将它生成工资单。
首先,在另一份工作表中的A1单元格中输入
“=IF(MOD(ROW(),3),OFFSET(Sheet1!$A$1,(MOD(ROW()-1,3)>0)*ROUND(ROW()/3,),COLUMN(A1)-1),"")”,并下拉即可。
在这个公式中:
- round(row()/3,)来确定offset函数向下移动的行数。row()/3的值0.33,0.66,1,1.33等等,由round进位后为0,1,1,1,2,2,2,3,3,3等等,它负责来确定抓取哪位员工的工资信息
- mod(row()-1,3)>0控制标题行。因为标题行一定要重复出现,且还必须在工资数据上方,因此mod函数的余数必须为0,1,2这样的顺序循环。
- 以上它们相互配合,当余数为0时,offset函数不位移,因此可以抓取标题行;当余数为1是,offset向下移动一行;当余数为2是,由于当前行是3的整数倍,因此以“”来填充单元格区域
- 最后一if函数来做逻辑判断,若是3的整数倍行,则空格。
最终效果如下:
不仅仅是工资条,其它类似的清单都可以以这种方式来批量处理。
-END-
欢迎关注【Excel应用之家】专栏,了解更多的Excel实际应用技能,尽在Excel应用之家!
版权声明:本文归Excel应用之家专栏(微信公众号Excel应用之家)原创撰写,未经允许不得转载。欢迎关注专栏/公众号。
网友评论