Excel怎么做工资条?说实话,第一次接触这玩意儿的时候,我差点崩溃!那时候刚进公司,啥也不会,师傅丢过来一份表格,淡淡一句:“把工资条做了吧。” 看着密密麻麻的数据,脑袋嗡嗡的。
最开始,我就是一行一行复制粘贴,一个一个抬头改,改到眼花缭乱,手都快抽筋了。 效率那个低啊,简直了!后来,痛定思痛,开始在网上各种搜教程,这才发现,原来Excel做工资条,方法真的很多。
先说说最常见的,也是我当年用的最笨的方法,那就是“辅助列”大法。 简单粗暴,适用于数据量不大的情况。
- 插入辅助列: 在你的工资表最左边或最右边插入一列,从1开始,依次往下填充数字,比如1、2、3...直到最后一条工资记录。
- 复制辅助列: 把辅助列的数字,复制粘贴到工资记录下方, 复制的次数取决于你的工资条抬头行数。举个例子,如果你的工资条抬头有3行,那就复制3次。
- 排序: 选中所有数据,包括辅助列,按照辅助列进行排序。 升序降序都可以,目的是把相同的辅助列数字排在一起。这样,你的工资条就初步成型了,抬头会重复出现在每个员工的工资记录上方。
- 调整格式: 最后,就是调整格式,让工资条看起来更舒服。你可以添加空行,让每个工资条之间有明显的间隔。
这个方法看起来简单,但是,真的,数据量一大,要复制粘贴几百遍,想想都头皮发麻! 绝对不是长久之计。
后来,我学会了用更高级一点的办法,那就是“函数法”。
函数法,听起来好像很高大上,其实也没那么难。核心是利用Excel的ROW()和MOD()函数。
- 确定抬头行数: 还是得先确定你的工资条抬头有多少行。 比如,还是3行。
- 插入辅助列: 同样需要插入辅助列,不过这次辅助列的公式不一样了。 在第一个工资记录的辅助列单元格输入公式:
=MOD(ROW()-2,4),然后向下拖动填充公式。注意!这个公式里面的-2和4都是要根据你的实际情况调整的。-2是指你的工资数据从第几行开始(比如,你的工资数据从第3行开始,那么就用ROW()-2)。4是指你的抬头行数+1(比如,你的抬头是3行,那么就用3+1=4)。 - 筛选: 选中所有数据,然后,对辅助列进行筛选,筛选出值为0的行。 这些筛选出来的行,就是你需要的抬头行。
- 复制抬头: 将工资表的抬头复制到筛选出来的行中。
- 取消筛选: 取消筛选,你会发现,每个员工的工资记录上方都出现了抬头。
- 调整格式: 同样需要调整格式,让工资条看起来更美观。
函数法,相对来说,效率高了很多,但是,公式有点复杂,容易出错。而且,如果你的工资表格式经常变动,公式也需要跟着调整,有点麻烦。
再后来,我发现了更厉害的,也是我现在最常用的方法,那就是“VBA”大法。
VBA,说白了,就是用代码来控制Excel。 听起来好像更难了,但是,一旦学会了,简直是打开了新世界的大门! VBA做工资条,可以实现一键生成,简直不要太爽!
- 打开VBA编辑器: 按下
Alt + F11,打开VBA编辑器。 - 插入模块: 在VBA编辑器中,点击“插入” -> “模块”。
- 编写代码: 在模块中,输入以下代码(代码可能需要根据你的实际情况进行修改):
```vba Sub 生成工资条()
Dim i As Integer, j As Integer, k As Integer Dim HeaderRows As Integer '抬头行数 Dim LastRow As Integer '数据最后一行 Dim NewRow As Integer '新工资条插入的行数 Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") '指定工作表,请修改为你的工资表名 HeaderRows = 3 '设置抬头行数,请修改为你的抬头行数
LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row '获取数据最后一行
NewRow = LastRow + 1 '从数据最后一行下面开始插入新行
Application.ScreenUpdating = False '关闭屏幕更新,提高运行速度
For i = LastRow To 2 Step -1 '从数据最后一行往上循环,避免插入行导致行号错乱 If (i - HeaderRows) Mod (HeaderRows + 1) = 0 And i > HeaderRows Then For j = 1 To HeaderRows ws.Rows(i + j).Insert Shift:=xlDown '插入新行 For k = 1 To ws.Cells(HeaderRows, Columns.Count).End(xlToLeft).Column ws.Cells(i + j, k).Value = ws.Cells(j, k).Value '复制抬头 Next k Next j End If Next i
Application.ScreenUpdating = True '开启屏幕更新
MsgBox "工资条生成完毕!"
End Sub ```
-
修改代码: 注意,你需要根据你的实际情况修改代码中的几个关键参数:
-
Sheet1:修改为你的工资表名。 -
HeaderRows = 3:修改为你的抬头行数。 -
运行代码: 点击VBA编辑器中的“运行”按钮,或者按下
F5键,运行代码。
运行完代码,你会发现,你的工资表已经自动生成了工资条,每个员工的工资记录上方都自动添加了抬头。
VBA大法,虽然需要一点编程基础,但是,真的,一旦学会了,效率杠杠的!而且,你可以根据自己的需求,定制各种各样的功能,比如自动调整格式、自动发送邮件等等。
对了,还有一种比较取巧的办法,就是利用Word的邮件合并功能。 先把Excel数据整理好,然后,在Word里面设计好工资条模板,最后,利用邮件合并功能,将Excel数据导入到Word模板中,生成工资条。 这种方法,适用于对格式要求比较高的工资条。
总之,Excel做工资条,方法很多,选择哪种方法,取决于你的数据量、格式要求以及你的Excel水平。 刚开始,可以先从最简单的辅助列大法开始,慢慢地,再学习函数法和VBA大法。
别怕麻烦,多尝试,多学习,你会发现,Excel真的是一个非常强大的工具! 相信我,熟练掌握Excel,绝对能让你的工作效率提升N个档次! 祝你早日摆脱手动复制粘贴的苦海!加油!
【excel怎么做工资条】相关文章:
excel迷你图怎么设置12-05
excel表格中怎么画横线12-05
excel表格怎么增加行数12-05
怎么找回excel未保存文件12-05
excel标准误差怎么算12-05
excel怎么切换工作表12-05
excel怎么做工资条12-05
excel成绩排名怎么弄12-05
怎么把excel的表格复制到word12-05
excel表格底纹怎么去掉12-05
excel多余的表格怎么删掉12-05
怎么删掉excel空白行12-05
think The user wants an article about "how to widen cells in Excel". The article needs to be at leas12-05