excel工资条的操作过程 怎样利用Excel表格制作工资条

作者&投稿:戎详 (若有异议请与网页底部的电邮联系)
方法一:宏命令控制法
对于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表,选择“工具→宏→宏”,
点击“执行”,将在Sheet2生成如Gz-2所示的转换成工资条,怎样,不复杂吧。当然,如果你的表总Sheet2已经输入了别的内容,就可以将他复制到Sheet3来生成,代码修改也很简单,把其中的Sheet2修改成Sheet3就可以了,其它代码不变。

方法二:公式填充法
相比宏命令,公式填充法更便于理解,不过需要手工操作的步骤稍微多一些,“鱼和熊掌不可得兼”,要用哪种方法就看你的爱好了。
首先打开要操作的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中执行以上操作就可以了,并不需要修改公式的内容

采用这种方法不能自动插入空行,给打印后的裁减带来了一定的麻烦,所以,建议在做完后在全选所有单元格,通过调整行高和列宽来解决这个问题。

方法三:Word邮件合并法
对于宏和公式运用不太熟练的朋友别着急,这里还有一招等着你。
首先我们确定好主文档(工资条表格)和数据源(Excel或Access格式的记录表),然后通过“邮件合并”向导把数据源中的的字段信息合并进来。
点击“工具→信函与邮件→邮件合并”,然后在屏幕右侧进入“邮件合并”向导。第一步:选择文档类型。选择“信函”。第二步:选择开始文档。选择默认的“使用当前文档”。 第三步:选取收件人。单击“使用现有列表”区的“浏览”按钮,通过“选择数据源”对话框,定位格式数据源的存放位置,选中并打开。 接着弹出“邮件合并收件人”对话框,在这里可以指定参与邮件合并的记录,选择默认的“全部”,确定返回Word编辑窗口。 第四步:撰写信函。将插入点定位于表格的第二行第一格内,单击“邮件合并”工具栏上“插入Word域”左边的“插入域”按钮,打开“插入合并域”对话框,选中“域”下方列表框中的“序号”字段,并单击“插入”按钮,即可把“序号”字段合并到主文档中。然后用同样的方法把其余字段插入到主文档表格中对应的位置即可。第五步:预览信函。在这里我们可以浏览一下工资条的大致效果,还可以调整“姓名”表格的宽度,让姓名在一行内显示。然后选中“姓名”后的表格区域,单击鼠标右键在弹出的菜单中选择“平均分布各列”,让这些列具有相同的宽度,使工资条更美观。如果这样直接进入打印操作,一页纸只能打印一个工资条, 所以选中整个工资条表格,复制,粘贴到原表格下方空一行后的地方,把插入点定位于主文档中第一和第二个表格之间的空行处,单击“邮件合并”工具栏上的“插入Word域”按钮,在弹出的菜单中选择“下一记录”命令,以此类推,就可以在一页纸上多排几个工资表,充分利用资源了。最后进入第六步:完成合并。然后把工资条打印出来,就制作完成了

方法四:
工资条制作的最简单方法 O &MH5^I
新插入一个工作表 JNY?] |=
$@@ii+W}\
在A1输入以下公式(可复制以下内容) &a4FGzR#
z Ohv>a
=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,清单!A$1,INDEX(清单!$A:$GH,INT((ROW()+4)/3),COLUMN()))) { TI,|'>5[
)Nqx=ms[(!
然后向右向下拖拉复制公式。 qtdkK LT
w&f>VB~,1
其中"清单"为工资表的表名,可在公式里修改。 oexTz[
p+<qI~
工资条间距离需要自己设置 %E/#h8oN{
jygUf|
本工资簿包含两张工资表。 IP$eJL[&D"
@I|kY5'c
第1张工资表就是工资清单,称为"清单"。它第一行为标题行包括职工姓名、各工资细目。 tV_3!7m0$
@{{L1[~:0
第2张工作表就是供打印的表,称为"工资条"。它应设置为每三行一组,每组第一行为标题,第二为姓名和各项工资数据,第三行为空白行。就是说整张表被3除余1的行为标题行,被3除余2的行为包括职工姓名、各项工资数据的行,能被3整除的行为为空行。 fd #QCs
AcEz$wy
在某一单元格输入套用函数"=MOD(ROW(),3)",它的值就是该单元格所在行被3除的余数。因此用此函数能判别该行是标题行、数据行还是空行。 = SuJ* 
]mi\Y"RO
在A1单元格输入公式"=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,清单!A$1,"value-if-false"))"并往下填充,从A1单元格开始在A列各单元格的值分别为清单A1单元格的值即姓名、value-if-false、空白,姓名、value-if-false、空白,……。其中value-if-false表示MOD(ROW(),3)既不等于0又不等于1时,即它等于2时应取的值。它可用如下函数来赋值:"INDEX(清单!$A:$G,INT((ROW()+4)/3),COLUMN())"。INDEX()为一查找函数它的格式为:INDEX(reference,row-num,col-num),其中reference为查找的区域,本例中为清单表中的A到G列,即函数中的"清单!$A:$G",row-num为被查找区域中的行序数即函数中的INT((ROW()+4)/3),col-num为被查找区域中的列序数即函数中的COLUMN()。第2、5、8…….行的行号代入INT((ROW()+4)/3)正好是2、3、4……,COLUMN()在A列为1。因此公式"=INDEX(清单!$A:$G,INT((ROW()+4)/3),COLUMN())"输入A列后,A2、A5、A8……单元格的值正好是清单A2、A3、A4……,单元格的值。这样,表的完整的公式应为"=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,清单!A$1,INDEX(清单!$A:$G,INT((ROW()+4)/3),COLUMN())))"。把此公式输入A1单元格,然后向下向右填充得到了完整的工资条表。 J @~g> 
cUP1Uolvn
为了表格的美观还应对格式进行设置,一般习惯包括标题、姓名等文字在单元格中要取中,数字要右置,数字小数点位数也应一致,还有根据个人的爱好设置边框。本表格只需对一至三行的单元格进行设置,然后通过选择性格式设置完成全表的设置。 Cq7 uy
x4>"m(&%
本工作簿的特点是1、不对清单表进行操作保持清单工作表的完整,2、全工作表只有一个公式通过填充得到全表十分方便 g18zo~LZ
A-.Wd7^~*
详解: %"oGJp
b?cO+PY01
一般来说,工资表的标题及其表的抬头部分都要占几行,所以工资数据的起始行并不是表的第一行,这里假定工资表的表名为GZ,列数有A~P共16列,工资项目在第三行,四至十三行是具体的工资数据,十五行为合计数。在工资表里,一行对应一个人的工资数据,而在工资条中则是两行对应一个人的工资数据,即在每个人的工资数据前要插入工资项目。这样我们只要设置一些简单的取数公式就行了。对于工资项目,固定去取第三行的数据,对于工资数据,则关心的是目标行与其源始数据行的对应关系。 6Y6t.j0vN.
b;*'j9ly
源数据行 1 2 3 4 5 6 7 8 9 10 ;5$ GJu(
jA2%kX\6//
目标行 2 4 6 8 10 12 14 16 18 20 :/6aBM?
(RrC<5"
其对应关系计算公式如下: !B#lZjW#
$%ND5uK
源数据行号=INT((目标行号+1)/2)  !a\HdQ
J(~1mIJjC
清楚了上述关系后,我们就可以来制作工资条了。制作工资条即可在原工作表中做,也可新建工作表。为简单起见,这里只针对新建工作表进行说明。 ;o;ak.dTt
"Dq^r9
新建工作表,在新表的A1单元格中输入: +>2.O2)%q
bUM4^m
IF(MOD(ROW(),2)=0,INDEX(GZ!$A$4:$P$13,INT(((ROW()+1)/2)),COLUMN()),GZ!A$3) lfd-!(tXD
vF~q".imC
公式中首先进行奇偶行判断,若是奇数行,直接取工资表的A3单元格数据。若是偶数行,则用INDEX()函数来取数。该函数的第一个参数是指定工资表中的一个取数区域,表中的第四行在此区域中就成为第一行,这样就取到了工资表中对应行当前列的单元格数据。 n) D
<-G3Qgm
接下来的工作就简单了,我们只要使用填充柄将此公式填充到其它单元格,列向填充到P列,行填充到20行就大功告成。 -`z%<)!Y
Sd.Km a
但这样的公式还存在一定的问题,就是在公式中使用了“GZ!$A$4:$P$13”来对所取数据的坐标区域进行了限制。如果工资表的行列有所增加或者减少,则要修改此坐标区域以适应这个变化。通常情况下列是固定不变的,而行的变动则有可能经常发生。我们就重点解决行的变化所带来的问题。 X&rsWk
m ]Qs BK
其实解决这个问题也很简单,只要取消行的限制即可。即将公式改成: QuI!`/N)z
9jx>&MnWs
IF(MOD(ROW(),2)=0,INDEX(GZ!$A:$P,INT(((ROW()+1)/2))+3,COLUMN()),GZ!A$3) pEN`6*
:M`~9MCRf
这里行号加上3是因为取消行的限制后,其行号就要从第四行开始计数了。  rf'A+q
EKN<KnU%
这样,我们只要根据行的增减变动对工资条工作表进行简单地复制或者删除操作,就能适应这种变动。 []yIz1P=j
u$ci{<
关于多行标题的: DR]oK_
>Lo'H}[pF
工资项目是两行时怎么办?(见图1) Q[H4l({E
i=rA;2>
0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border=0> L >hLYIW
,qV7$u
图1 $DnJ/hg;qD
meThjCC
和单行项目比起来,无非是从原来的一行对应两行变成现在的一行对应三行了。可以说,公式结构没有变化,只要调整一下计算参数,增加一个判断多取一行数据就成了。比如,针对图1的结构,公式可相应地变为(例假定到U): V!TGFo}
V@gG x
=IF(MOD(ROW(),3)=0,INDEX(工资B!$A:$U,INT((ROW()/3))+3,COLUMN()),IF(MOD(ROW(),3)=1,工资B!A$2,工资B!A$3)) YT)1_>*\
.+u r+" i
但是,在单行工资条的公式中,因为只需一个判断函数IF(),所以结构相对简单,效率也不存在问题。而在这里,公式结构变复杂了,如果使用CHOOSE()函数,能使公式简化。 !kh:zTP
wsAb8 U C_
=CHOOSE(MOD(ROW(),3)+1,INDEX(工资B!$A:$U,INT((ROW()/3))+3,COLUMN()),工资B!A$2,工资B!A$3) dEX67rUj;
*`Ge8?qC
对比这两个公式,其实大同小异,只是CHOOSE()的计数是以1为起点的,所以需要加个1。 q 4Ok$~"I
Y10
但是,多行项目其项目行往往有结构的要求,用公式只能将其数据取出,对结构来说却是无能为力的。那怎么办呢? z$/s` |]
HuN_$aP
这个问题实际也很好办,不过需要多操作两步罢了。选择2~4行,单击格式刷,再到工资条表格中单击A1单元格,立即再次单击格式刷,然后将余下的工资条都选中,美观的工资条就出来了。 ^0I"
)hVn/*mH
以上是两行项目的,再看图2,工资项目变三行了。 $}0\sj%
.i#'IS0c
0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border=0> F"23v G>3
6J -=6t|
图2 yi-0CHo
2';{o=TXV
针对这个工资表。公式有何变化呢? >LVGNicQ
$ B]_^
=CHOOSE(MOD(ROW(),4)+1,INDEX(工资C!$A:$U,INT((ROW()/3))+4,COLUMN()),工资C!A$2,工资C!A$3,工资C!A$4) LGYg@DR
idjk uB(6
呵呵,CHOOSE()函数的优势在这里体现出来了。与上一个公式比较一下,变化不大吧?如果还有更加特别的,如四行、五行项目的,照此处理就行了。 y (%y'xBP
b |ijkys
可是,四、五行的没见到,却等来了一个让我意想不到的结构(见图3)。 Y44[2 :m
gL7rX aj
0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border=0> (L W2S;-
8/"C0I (G
图3 }:]CXrdg>
-6e^`c6{
工资数据竟然也占两行。还好,有了上面的基础,只需做些简单的变换就成了(这个表的列到R列)。 Uu9I;q!|
CFu^i|7o
=CHOOSE(MOD(ROW(),4)+1,INDEX(工资D!$A:$R,INT((ROW()-1)/4)*2+4,COLUMN()),工资D!A$1,工资D!A$2,INDEX(工资D!$A:$R,INT((ROW()-1)/4)*2+3,COLUMN())

用这个公式比较好“=IF(MOD(ROW(),2)=0,INDEX(sheet1!$A:$L,INT(((ROW()+1)/2))+2,COLUMN()),sheet1!A$2)”,但是要考虑int里面一项除以2的那项数字,会根据单元格的不同确定的数字不同

30秒学会做工资条~



excel制作工资条的方法~

怎么制作工资条?

Excel小技巧

用Excel制作工资条的几种常见方法
答:1、添加新工作表,命名为“工资条表”,在其中创建公式函数。2、表格A1单元格输入公式:=IF(MOD(ROW(),3)=1,工资表!A$1,IF(MOD(ROW(),3)=0,"",INDEX(工资表!$A$1:$G$10,(ROW()+4)/3,COLUMN())),选择公式 单元格向右向下复制公式,直到出现所有人员工资条为止,完成工...

在Excel里如何制作工资条
答:1、首先打开Excel表格,录入所需要的数据,若事先已做好数据,可以直接复制,然后在旁边的空白列表中,在该列第二行开始依次输入1、2,再用填充柄填充整列,如序号一般,作为做工资条的辅助列。2、把刚输入的序列复制到该列的下面。3、把刚刚输入的列进行升序。选中任一数据,切换到“数据”选项卡,...

excel在工资表怎样自动生成每个人的工资卡片_excel表格做工资表怎么自...
答:1.打开工资表→在工资表最后一空白列输入1,2,3(注:输入的数字与工资表的行数相同)(图1)。2.在刚输入的数字下面向下输入1.1,2.1,比上面的数据少一行,本列在K9中输入1.1(图2)。3.在K列任何一个单元格中单击左键→单击工具栏上的升序排列按钮→选择工资表→编辑→定位→定位条件选择“...

使用Excel制作工资条的方法步骤
答:1、先在首行插入需要的行数(根据表格人数插入行数,可向上插入,也可向下插入,本例是向下插入)2、选中单元格,快捷键Ctrl+D(向下填充内容)。也可以点击 开始 菜单栏中 找到填充图标 要选中单元格,边框呈现粗色的就是被选中了,填充后的结果 3、在表格的最后一列复制序号,序号要复制2次 4、...

Excel怎么设计出既美观又准确的工资条?
答:方法/步骤 首先打开我们的Excel表格,录入我们的数据,如果事先做好数据的可以直接复制 然后我们在旁边的空白列表中,在该列第二行开始,依次输入1,2,然后用填充柄填充整列,如序号一般,作为我们做工资条的辅助列 然后我们再把我们刚刚输入的序列复制到该列的下面,如图 然后我们再把我们刚输入的列...

Excel怎么做工资条? excel工资条的两种制作方法
答:Excel软件中的数据处理功能非常强大,很多人都用它来制作工资表,再打印出工资条。很多文章都介绍过如何把工资表制成工资条,但这些方法非常复杂,不利于操作。先推荐两种用Excel制作工资条的非常简单的方法,希望能对有这方面要求的朋友有所帮助。方法一:函数法 1、打开工资表单击Sheet2标签在Sheet2工作...

如何用Excel快速制作工资条
答:“Microsoft office Excel 2007工作表”。点击工作表,此时在桌面上创建了一张被自动命名为“新建 Microsoft Office Excel 2007 工作表”的空白工作表。2、双击此工作表,进入工作表界面,进行具体操作。把第一行设置为表头,并命名为“员工工资表”:选中A~H列。点击工具栏上的“合并后居中”, 然后...

Excel工资条要怎么做?
答:步骤一:编制工资条的计算公式。首先打开Excel,然后插入新的工作表,在重命名为“工资条表”。再选中A1单元格,在编辑栏中输入公式,然后按回车键确认即可。公式则为:“=IF(MOD(ROW(),3)=0,"",IF(MOD(ROW(),3)=1,工资明细表!A$3,INDEX(工资明细表!$A:$Q,NT((ROW()-1...

在Excel上工资单怎么做
答:1、打开员工工资表后,把鼠标放到工资数据表中数据区域任一位置,通过Ctrl+A快捷键全选员工工资数据表,接下来我们选择菜单栏中的“数据”选项,然后在分级菜单栏中选择“分类汇总”命令;2、弹出来“分类汇总”对话框后,我们将“分类字段”设置为“姓名”,其他选项我们都保持默认项,然后点击“确定”...

怎么在excel里制作工资表
答:方法/步骤 1 方法一:利用表格编辑的排序功能实现快速制作工资条 2 1、打开制作好的员工工资表,复制工资表表头,并且粘贴到工资表下方。3 2、选择粘贴好的工资表表头,将鼠标移动至该行右下角,当出现一个黑色”+“时,往下拖动复制该行内容。复制行数比员工数相等,比如,员工有10人,那么往下拖动...