分享

Excel制作工资条几种方法?排序法,函数法,vba 你更喜欢哪种?

 L罗乐 2019-03-18

不同的方法,永远相同格式的工资条。当然制作工资条的方法有很多,比如排序法,函数法,vba 或录制宏,还有以前的邮件合并法。制作的武器库各种枪炮齐全,我们仍然需要努力学习,常学常新。

今天请大家看看工资条的作法。如下表格展现在大家的面前,工资表的原始数据结构。

这是一份标准的工资表格式,需要做成工资条通知到每一个人。但是如果一个一个的复制显得非常满意效率和速度,加上准确性也不大好。

我们给大家看看第一种方式,工资条的制作。排序法如下:

但是这个方法不能随数据变化自动更新,也就是说一旦生成了,如果数据有变数,就需要重新更新一份啦!这也是这种方法美中不足的一点。

第二种制作方式,就是我们常说的公式法来制作。

建立2个工作表,分别是工资表和工资条,如下图所示:

在新建工资条表格中,然后在A1单元格输入公式,右拉下拉和向下拉即可:

=CHOOSE(MOD(ROW(1:1),3) 1,'',工资表!$A$1:$F$1,OFFSET(工资表!A$1,ROW(1:1)/3 1,))

因为公式稍微有点复杂,涉及到甘薯的嵌套和运算逻辑,但是我们可以大致了解一下运算的方式。

首先,使用MOD(ROW(1:1),3) 1,得到1 2 3 1 2 3……这样循环的序列号。然后使用CHOOSE函数,以此为索引值,依次返回空文本''(空白行)、工资表!$A$1:$F$1(标题)和OFFSET(工资表!$A$1:$F$1,ROW(1:1)/3 1,)的计算结果。

其中OFFSET函数部分的作用是,以第一行为基点,公式每下拉三行,引用的行数向下偏移一行。

用公式,虽然复杂,但写一次可以把公式复制出来生成一个只有公式的工作表,以后每个月工资算好,打开那个工作表,更改一下数据源就行。而且工资数据有改动的时候,只要复制改动的编号,就可以打印更改的那几项。

是不是看到这里还是感觉公式其实也是挺复杂的呀,有没有在一瞬间就可以批量生成工资条的呢?

方法也有,就是我们常说的VBA方式,用代码一键来完成工资条的制作。

我们先看动画是如何去实现的啦!

右键单击工作表标签→查看代码,在代码窗口写上以下代码:

Sub 生成工资条()

Dim i As Integer, iLastRow As Integer

Application.ScreenUpdating = False

iLastRow = Range('A1').CurrentRegion.Rows.Count

For i = iLastRow To 3 Step -1

Range('A' & i).Resize(2, 1).EntireRow.Insert

Range('A' & i 1).Resize(1, 8).Value = Range('A1').Resize(1, 8).Value

Next i

Application.ScreenUpdating = True

End Sub

点击执行即可生成工资条,这个是一键操作即可。

代码的意思是,先获取最大行号,从最下面循环到第三行的位置,每循环一次插入两个空行,循环的步数为1步,在插入的第二个空行填上标题。

以上三种工资条的制作方式你GET到几种?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多