使用Excel做工资统计,是很多中、小企业都会做的,但是如何让工资条打印既快速又漂亮是很多人头痛的问题,下面就提供几种综合解决方案,有需要的朋友可以根据自己的实际情况选择一种方案来操作。 一、人少好办事
对于一些小企业或者办公室类型的公司来说,公司全体人数也不多,少的几个人,多的也就十几、二十人的样子,即便是每个人的工资条打成一张纸,也不会造成什么大的浪费,所以我们可以简单设置让其每条记录打印在一张纸上,这样是最简单快捷的方法了。
这里利用的是一种类似的“页眉”的方式实现每一页打印后都有一个“标题行”,这样保证工资的明细项目在工资条上体现,然后每一个“标题行”下方跟一条记录,最后打印出的效果就是工资条了,具体操作如下。
在Excel做好的工资表中,执行“文件”→“页面设置”命令,在打开的“页面设置”对话框中切换到“工作表”标签,单击“顶端标题行”右侧的按钮,在工作表中选择工资表的头部区域,然后单击回车键,使“页面设置”对话框如图 1所示,然后单击“确定”按钮使设置生效。
图 1 选择工资表的头部
接下来单击“打印预览”按钮,使工作表呈打印预览状态,然后在“打印预
览”对话框中单击“页边距”按钮,使打印预览对话框中显示出调整页边距的虚线,使用鼠标拖动“下边距”虚线至工作表第二行处,即最终效果为页面中显示的只有两行,一行是工资细目,一行是数据(如图 2),接下来就打印吧,打印出的每页纸中就是一位员工的工资条了。
图 2 拖动下边距
小提示:这种打印工资条的方法是最简单,最安全(不容易出错),最快速的方法,当然弊端就是太浪费纸张了,如果公司人数稍微多一点,就不太适合了,不过你可以试试下面的方法。 二、妙用排序,轻松打印工资条
工资条的最终结果就是一行工资明细目,一行员工对应的数据,通常做好的工资表都是只有第一行有数据工资细目,下面全部是数据,如果能从第二行开始,每一行的结尾都添加一行工资细目的数据就好了。这一点可以使用排序轻松实现,具体实现方法如何,就请接着往下看吧。
假设当前工资表中有300行数据,显然使用第一种方法是行不通的。首先复制第一行的工资细目数据,从300行之后的任一行粘贴,并使用填充柄拖动复制300行。
接下来在A列的前面插入两列,第一列使用填充柄输入序号,从1一直拉到N(本例操作时为1000,这个N可根据自己的喜好以及实际需求,基本上只要大
于工资表中数据的两倍即可),主要用来打印工资条后下次重新做工资时恢复表格顺序。第二列从第二行开始,依次输入1、3、5、7,然后选中这四个单元格,使用填充柄填充至员工数据结束位置。在下方的工资细目数据区,从第一行依次输入2、4、6、8,然后选中这四个单元格,使用填充柄填充至结束,大致效果如图 3所示。
图 3 输入数字,为下一步作准备
执行“数据”→“筛选”→“自动筛选”命令,单击B列的下拉按钮,在弹出的下拉菜单中选择“升序排列”,这样工资条就做好了(如图 4)。
图4 最终效果
从上图中可以看出,工资条效果已经实现了,这时将A、B两列隐藏,然后打印,我们的工作就算完成了。等下个月需要使用这张工资表格重新计算工资时,只需要将隐藏的A、B两列取消隐藏,使用“自动筛选”,然后按照A列“升序排列”即可还原原来的顺序。 三、轻松插入工资细目数据行
其实用Excel打印工资条,归根结底就是让Excel制作的工资表格中,一行工资细目数据,一行员工的记录。如果在每一个员工数据的上面插入一行工资细目数据显然我们的要求也就完成了,当然纯手工的一行一行插入显然是个“不可能完成的任务”,这里需要有点小技巧。
第一步:在工资细目的右侧两列中,交叉输入任意数字(主要是为了后面的“空位”空值,所以数字可任意输),然后选中交叉的四个单元格,双击右下角的“填充柄”,使这种格式一直填充至工资表的结束行(如图 5)。
图5 填充数据
第二步:执行“编辑”→“定位”命令,在打开的“定位”对话框中单击“定位条件”按钮,在打开的“定位条件”对话框中,选择“空值”,然后单击“确定”按钮(如图 6)。
图6 定位空行
第三步:执行“插入”→“行”命令,这时便会从第三行开始,每一行的前面插入了一个空行。
第四步:复制表头的工资细目数据,选中工资表A列的数据区域,执行“编辑”→“定位”命令,在打开的“定位”对话框中单击“定位条件”按钮,在打开的“定位条件”对话框中,选择“空值”,然后单击“确定”按钮,这时会选中刚插入的空行,执行“编辑”→“粘贴”命令,这时工资条就算制作完成了(如图 7)。
图7 最终效果
四、小结
一提到用Excel打印工资条,很多人就会想到高深的VBA或者是难以理解的函数,经常看着别人给出的解决方案中的VBA代码或者是函数,因为难以理解其意,所以总是担心出错。
其实很多时候只要抓住需求,仔细分析,然后再用模拟日常的操作,通过一些附加的操作提高效率,我们的要求也就达到了。因为是简单、易用,并且很容易掌握,也不容易出错,就算偶尔出错,也很容易查出错在哪。
这里给出的三种打印工资的条的方法可以说是非常简单、易用的。希望对有需要的有所帮助,即便是用不上的朋友也可以通过上面的事例,在遇到相关应用的时候,能够多一些解决问题的思路。
用 Excel 制作漂亮的工资条的方法
如何使用Excel进行工资条的制作,也许有些网友使用已经很长时间了,但如何更快更好的做出漂亮的工资条,看看作者的方法吧。
“小问题难倒老财务”,也许你已经在财务口上工作多年,也许你天天都要面对Excel那张老脸,也许你已经习惯了用工资明细表做员工工资统计并向上级汇报,把表中的条目一条条复制粘贴后打印发给每个员工。可你是否想过,找一个更简单更有效率的方法?看起来这似乎有些困难:在工资明细表中,工资的项目(即表头)一般只出现在表格开头的某一行,而在工资条中,为了便于阅读则要求每个人的工资都有表头,那么如何巧妙地把工资明细表制作成便于打印的工资条呢?如图所示,这就是我们要完成的工作(原工资表见图1,转换成工资条后的效果见图2):
图1 原工资表
图2 转换后效果 “条条大路通罗马”,不过路有远近之分,方法也有难易之别,这里给大家提供三种最简单易用的方法。 方法一:宏命令控制法
对于Office家族的宏功能,大家或许早有耳闻,但由于需要使用VBA进行编程,所以宏一直让许多人望而却步,不过要使用一个现成的宏就简单多了。首先打开要处理的Excel表,选择“工具→宏→Visual Basic 编辑器”,在编辑器左边的窗口中用鼠标双击Sheet1,会出现代码编辑窗口,在代码编辑窗口输入如下代码(为了不破坏原有的工资表,所以这里采用了将
Sheet1的内容复制到Sheet2的方法,所以最后的生成结果是在Sheet2中显示): Sub MakeSalaryList() Dim i As Integer Dim endrow As Integer '测出数据的最后一行
endrow = Sheet1.Range(\"a65536\").End(xlUp).Row - 1
'把标题贴过去
Worksheets(1).Range(\"1:1\").Copy (Worksheets(2).Cells(1, 1)) For i = 3 To endrow '把每条数据抬头贴过去
Worksheets(1).Range(\"2:2\").Copy (Worksheets(2).Cells(3 * i - 7, 1)) '把数据贴过去
Worksheets(1).Range(Cells(i, 1), Cells(i, 256)).Copy (Worksheets(2).Cells(3 * i - 6, 1)) Next i End Sub
关闭编辑器,将自动返回到刚才的Excel表,选择“工具→宏→宏”,将弹出如下对话框:(见图3)
方法二:公式填充法 相比宏命令,公式填充法更便于理解,不过需要手工操作的步骤稍微多一些,“鱼和熊掌不可得兼”,要用哪种方法就看你的爱好了。 首先打开要操作的Excel工资表,为了不破坏原表(Sheet1)结构,我们仍然采用在Sheet2中进行操作的方法。由于这个工资表
一共有L列,18行,要复制的表头项目在第二行,所以在第一个单元格中输入如下公式: =IF(MOD(ROW(),2)=0,INDEX(sheet1!$A:$L,INT(((ROW()+1)/2))+2,COLUMN()),sheet1!A$2) 接下来的工作就简单了,我们只要使用填充柄将此公式填充到其它单元格,列向填充到L列,行填充到18行就大功告成。
因为在不同的表格中这个公式需要修改的地方比较多,所以这里做一下解释:
由于工资条中的奇数行都是表头,偶数行是数据,所以在这个公式中首先进行奇偶行判断,若是奇数行,直接取工资表的A2单元格数据(即公式中的 sheet1!A$2,如果表头数据在第4行第三列则修改为sheet1!C$4)。若是偶数行,则用INDEX()函数来取数。该函数的第一个参数是指定工资表中的一个取数区
域(即
sheet1!$A:$L,如果不是从A到L列,那么可以修改这个参数,如修改为sheet1!$B$P ,就表示在B到P列之间取数)。当然,如
果你想把转换后的数据放在Sheet3而不是Sheet2中,那么,只要在Sheet3中执行以上操作就可以了,并不需要修改公式的内容(见图4)。
图4 公式填充法
采用这种方法不能自动插入空行,给打印后的裁减带来了一定的麻烦,所以,建议在做完后在全选所有单元格,通过调整行高和列宽来解决这个问题。 方法三:Word邮件合并法
对于宏和公式运用不太熟练的朋友别着急,这里还有一招等着你。
首先我们确定好主文档(工资条表格)和数据源(Excel或Access格式的记录表),然后通过“邮件合并”向导把数据源中的的字段信息合并进来。
点击“工具→信函与邮件→邮件合并”,然后在屏幕右侧进入“邮件合并”向导。 第一步:选择文档类型。选择“信函”。
第二步:选择开始文档。选择默认的“使用当前文档”。
第三步:选取收件人。单击“使用现有列表”区的“浏览”按钮,通过“选择数据源”对话框,定位格式数据源的存放位置,选中并打开。接着弹出“邮件合并收件人”对话框,在这里可以指定参与邮件合并的记录,选择默认的“全部”,确定返回Word编辑窗口。
第四步:撰写信函。将插入点定位于表格的第二行第一格内,单击“邮件合并”工具栏上“插入Word域”左边的“插入域”按钮,打开“插入合并域”对话框,选中“域”下方列表框中的“序号”字段,并单击“插入”按钮,即可把“序号”字段合并到主文档中。然后用同样的方法把其余字段插入到主文档表格中对应的位置即可。 第五步:预览信函。在这里我们可以浏览一下工资条的大致效果,还可以调整“姓名”表格的宽度,让姓名在一行内显示。然后选中“姓名”后的表格区域,单击鼠标右键在弹出的菜单中选择“平均分布各列”,让这些列具有相同的宽度,使工资条更美观。如果这样直接进入打印操作,一页纸只能打印一个工资条,所以选中整个工资条表格,复制,粘贴到原表格下方空一行后的地方,把插入点定位于主文档中第一和第二个表格之间的空行处,单击“邮件合并”工具栏上的“插入Word域”按钮,在弹出的菜单中选择“下一记录”命令,以此类推,就可以在一页纸上多排几个工资表,充分利用资源了。
最后进入第六步:完成合并。然后把工资条打印出来,就制作完成了(见图5)。
图5 完成 OK,再也不用费力地重复劳动专门制作工资条数据表了,通过简单的转化一个数据表就实现了两项完全不同的功能,赶快操练一下吧。
因篇幅问题不能全部显示,请点此查看更多更全内容