红楼外传——三种方法制作工资条

 

红楼外传——王熙凤巧做工资条...



“来晚了来晚了,让大家久等。”

大观园内,凤姐满面笑容出现在大家的面前。

“姐姐来了就好,姐妹们都等急了”宝玉见凤姐到来急急的说。

“今天请大家看看工资条的作法。”凤姐说着拿出一份表格展现在大家的面前。

“这是府里的工资表,需要做成工资条通知各位,我自己不会,只好有劳大家了。”

“这个不难。”黛玉抢先一步在电脑上操作起来。
“不错不错”凤姐连连称赞,“只是此方法不能随数据变化自动更新,也是美中不足”

宝玉思索片刻:“那就用公式来处理好了”。

新建一个工作表,命名为“工资条”,然后在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函数部分的作用是,以第一行为基点,公式每下拉三行,引用的行数向下偏移一行。“

“有劳宝兄弟,我看你输入之后拉来拉去的也麻烦,有没有点一下就可以生成的的方法。”王熙凤又有了新想法。

“我来写一个吧。”元春说道。

“先将工资表建立一个副本,右键单击工作表标签→查看代码,在代码窗口写上以下代码:

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

按F5键运行代码即可生成工资条了。

代码大意是,先获取最大行号,从最大行号循环到第三行的位置,每循环一次插入两个空行,在插入的第二个空行填上标题。”
王熙凤作揖谢过回府不提,众人还未落座,却见那厢宝玉和黛玉闹嚷嚷争吵起来,预知后事如何,且听下回分解。

图文作者:程习彬

编辑整理:祝洪忠
专业的职场技能充电站
当当网科技类图书限时优惠,满100-50


链接在此,复制到浏览器中打开即可:

http://search.dangdang.com/?key=excel%20home&act=input


    关注 Excel之家ExcelHome


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册