如何做工资条
本工资簿包含两张工资表。 第1张工资表就是工资清单,称为"清单"。它第一行为标题行包括职工姓名、各工资细目。 第2张工作表就是供打印的表,称为"工资条"。它应设置为每三行一组,每组第一行为标题,第二为姓名和各项工资数据,第三行为空白行。 就是说整张表被3除余1的行为标题行,被3除余2的行为包括职工姓名、各项工资数据的行,能被3整除的行为为空行。 在某一单元格输入套用函数"=mod(row(),3)",它的值就是该单元格所在行被3除的余数。 因此用此函数能判别该行是标题行、数据行还是空行。 在a1单元格输入公式"=if(mod(row(),3)=0,"",if(mod(row(),3)=...全部
本工资簿包含两张工资表。 第1张工资表就是工资清单,称为"清单"。它第一行为标题行包括职工姓名、各工资细目。 第2张工作表就是供打印的表,称为"工资条"。它应设置为每三行一组,每组第一行为标题,第二为姓名和各项工资数据,第三行为空白行。
就是说整张表被3除余1的行为标题行,被3除余2的行为包括职工姓名、各项工资数据的行,能被3整除的行为为空行。 在某一单元格输入套用函数"=mod(row(),3)",它的值就是该单元格所在行被3除的余数。
因此用此函数能判别该行是标题行、数据行还是空行。 在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单元格,然后向下向右填充得到了完整的工资条表。 为了表格的美观还应对格式进行设置,一般习惯包括标题、姓名等文字在单元格中要取中,数字要右置,数字小数点位数也应一致,还有根据个人的爱好设置边框。
本表格只需对一至三行的单元格进行设置,然后通过选择性格式设置完成全表的设置。 本工作簿的特点是1、不对清单表进行操作保持清单工作表的完整,2、全工作表只有一个公式通过填充得到全表十分方便。收起