员工的当月相关资料信息是工资表的一个重要项目,包含了出勤、加班、养老保险和补贴等重要信息。因为存在一定变数,可单独成表,然后按照当月实际情况进行修改,然后供其他工作表调用其中的数据,这样才是一个系统而全面的工资表体系。
实际出勤天数=应出勤天数-缺勤天数(F4=D4-E4)
数据的调用
做工资明细表时,在第一行输入表格标题后我们发现“员工代码、部门、姓名??”等数据与“员工基础资料表”中的内容是相同的,因此就无需反输入这些数据,可以采用调用数据的方法。同时,当员工资料发生变化时,不需要核对改动每一张表格,只需要修改第一张(基础资料表)表格的资料,其他工作表就能自动变更。以姓名为例选中C4格,输入公式“=VLOOKUP(A4,基础资料表!A:C,3,0)”,回车。用同样的方法调用部门中的数据。
若用到制表时间(如2009年4月30日)时可输入公式“=基础资料表!A2”进行数据调用,其中A2格是制表时间;
调用“员工代码”输入公式“=基础资料表!A4” 其中A4格是第一位员工的代码号。 若需调用“部门、姓名??”等数据,输入公式“=VLOOKUP(A4,基础资料表!A:I,2,0)”其中A4格是需要在数据表首列搜索的值如员工代码号,员工的基础资料表!A:I指需要在其中搜索数据的信息表区域,2指满足条件的数组区域的列号,0指搜索时数据精度大致匹配。
编制“基础工资”公式
选中D4单元格,设为“数值”格式,并保留“2”位小数。输入公式“=ROUND(VLOOKUP(A4,基础资料表!A:I,5,0)/VLOOKUP(A4,相关资料!A:G,4,0)*VLOOKUP(A4,相关资
21
料!A:G,6,0),0)”,回车。其中5是基础资料表中的【基础工资标准】的列号;4是相关资料表中的【应出勤天数】的列号;6是相关资料表中的【实出勤天数】的列号。
基础工资=基础工资标准/应出勤天数×实出勤天数
编制“绩效工资”公式
选中E4单元格,设为“数值”格式,并保留“2”位小数。输入公式“=ROUND(VLOOKUP(A4,基础资料表!A:I,6,0)*VLOOKUP(A4,相关资料!A:G,7,0),0)”,回车。其中A4格是【员工代码】,员工的基础资料表!A:I指需要在其中搜索数据的信息表区域,6是【绩效工资标准】的列号,0指搜索时数据精度大致匹配;员工的相关资料表!A:G指需要在其中搜索数据的信息表区域,7是【绩效考核系数】的列号。
绩效工资=绩效工资标准×绩效考核系数
调用“年功工资”
选中F4单元格,输入公式“=VLOOKUP(A4,基础资料表!A:I,9,0)”回车。其中A4格是【员工代码】,员工的基础资料表!A:I指需要在其中搜索数据的信息表区域,9是【年功工资】日期的列号,0指搜索时数据精度大致匹配。
调用“通讯补助”
选中G4单元格,输入公式“=VLOOKUP(A4,相关资料!A:J,10,0)”回车。其中A4格是【员工代码】,员工的基础资料表!A:J指需要在其中搜索数据的信息表区域,10是【通讯补助】的列号,0指搜索时数据精度大致匹配。
应发合计=基础工资+绩效工资+年功工资+通讯补助(H4= =SUM(D4:G4))
编制“日工资”公式
选中I4格,输入公式“=ROUND(H4/VLOOKUP(A4,相关资料!A:D,4,0),0)”,按回车键确认。其中A4格是【员工代码】,员工的相关资料表!A:D指需要在其中搜索数据的信息表区域,4是【应出勤天数】的列号,0指搜索时数据精度大致匹配,最后的0指四合五入为整数。
编制“正常加班工资”公式
选中J4格,输入公式“=VLOOKUP(A4,相关资料!A:L,8,0)*I4*2”,回车。表示正常加班给予双倍工资补偿。8是【日常加班天数】的列号,0指搜索时数据精度大致匹配,I4是工资明细表中的【日工资】单元格。
编制“节日加班工资”公式
选中K4格,输入公式“=VLOOKUP(A4,相关资料!A:L,9,0)*I4*3”,回车。表示按规定,节日加班给予三倍工资补偿。9是【节日加班天数】的列号,0指搜索时数据精度大致匹配,I4是工资明细表中的【日工资】单元格。
工资合计=应发合计+正常加班工资+节日加班工资(L4=H4+J4+K4)
调用“住宿费”
选中N4格,输入公式“=VLOOKUP(A4,相关资料!A:L,11,0)”,回车。
22
知识点 ROUND函数用来返回某个数字按指定数取整后的数字。 ROUND(number,num_digits) 函数语法 Number:需要进行四合五入的数字 num_digits:指定的位数,按此位数进行四合五入。 如果num_digits大于0,则四合五入到指定的小数位。 函数说明 如果num_digits等于0,则四舍五入到最接近的整数。 如果num_digits小于0,则在小数点的左侧进行四舍五入。 调用“代扣养老保险金”
选中O4格,输入公式“=VLOOKUP(A4,相关资料!A:L,12,0)”,回车。
1 0.5.3计算个人所得税
在前面我们制作了一张个人所得税税率表,现在就要用到这张税率表,计算每个员工该缴纳的个人所得税了。
应纳税所得额
在R3格中输入“应纳税所得额”。选中R4,输入公式“=IF(L4>税率表!$F$2,L4-税率表!$F$2,0)”,回车。其中【税率表!$F$2】是税率表中的【起征额】。
税率
在S3格中输入“税率”。选中S4格,输入公式:“=IF(R4=0,0,LOOKUP(R4,税率表!$C$2:$C$11,税率表!$D$2:$D$11))”,回车。其中【税率表!$C$2:$C$11】是税率表中的【上限范围】;【税率表!$D$2:$D$11】是税率表中的【扣税百分率】。
知识点 函数语法 LOOKUP函数是用来返回向量或数组中的数值。 LOOKUP函数的语法有两种形式,向量和数组,在我们涉及的例予中就是向量。 LOOKUP(1ookup_value,lookup_vector,result_vector) 1ookup_value:为需要查找的数值,数值可以是数字、文本、逻辑值或者包含数值的名称或引用。 lookup_vector:为之包含一行或一列的区域,数值可以是数字、文本或向量形式的语法 逻辑值。如果是树枝则必须按升序排列,否则函数不能返回正确的结果。 result_vector:为只包含一行或一列的区域,且如果lookup_vector为行(列),result_vector也只能为行(列),包含的数值的个数也必须相同。 上例中的公式所表达的意思是:如果R4=0则返回0值,否则要在“基础资料表”工作表中的C6:C15中查找等于R4的值或是小于R4又最接近R4的值,并返回同行中D(E)列的值。 速算扣除数
在T3格中输入“速算扣除数”。选中T4格,输入公式:“=IF(R4=0,0,LOOKUP(R4,税率表!$C$2:$C$11,税率表!$E$2:$E$11))”,回车。其中【税率表!$C$2:$C$11】是税率表中的【上限范
23
围】;【税率表!$E$2:$E$11】是税率表中的【扣除数】。
个人所得税=应纳税所得额×税率-速算扣除数(M4=R4*S4-T4)
实发合计=工资合计-个人所得税-住宿费-代扣养老保险(P4=L4-M4-N4-O4)
编制工资条公式
插入一张新“工资条表”并选中A1格输入公式“=IF(MOD(ROW( ),3)=0,\( ),3)=1,工资明细表!A$3,INDEX(工资明细表!$A:$Q,INT((ROW( )-1)/3)+4,COLUMN( ))))”。
将光标放到A1格右下角,变为黑十字形状时,向右拖动智能填充到P列松开,再选中A1:P1向下智能填充,完成公式的复制。再给一溜工资条加边框线后双击格式刷选中一个未加边框的工资条添加边框线。
本例公式说明
首先分析INDEX(工资明细表!$A:$Q,INT((ROW( )-1)/3)+4,其中行参数为
INT((ROW( )-1)/3)+4,如果在第一行输入该参数,结果是4,向下拖拽公式至20行,可以看到结果是4;4;4;5;5;5;5;6;6;6??如果用“INT((ROW( )-1)/3)+4”做INDEx的行参数,公式将连续3行重复返回指定区域内的第4、5、6行的内容,而指定区域是“工资明细表”工作表,第四行以下是人员记录的第一行,这样就可以每隔3行得到下一条记录。用COLUMN( )做INDEX的列参数,当公式向右侧拖拽时,列参数COLUMN( )也随之增加。
如果公式到此为止,返回的结果是每隔连续3行显示下一条记录,与期望的结果还有一定的差距。希望得到的结果是第一行显示字段、第二行显示记录、第三行为空,这就需要做判断取值。如果当前行是第一行或是3的整数倍加1行,结果返叵I“工资明细表”工作表的字段行。如果当前行是第二行或是3的整数倍加两行,公式返回INDEX的结果;如果当前行是3的整数倍行,公式返回空。
公式中的第一个IF判断IF(MOD(ROW( ),3)=0,\??)用来判断3的整数倍行的情况,如果判断结果为“真”则返回空,第二个判断IF(MOD(ROW( ),3)=1,工资明细表!A$3,??)用来判断3的整数倍加l时的情况,判断结果为“真”则返回工资明细表!A$3即字段行的内容;余下的情况则返NINDEX函数段的结果。
输入日期如7月1日、7月2日、7月3日等想让他显示为1日、2日、3日:可选中该区域后设为日期格式,再设为自定义下的“d\日\”。
24
(2)选【正常出勤】W5格输公式“=COUNTIF(B5:V5,\√\可显示有几人正常出勤;在【迟到次数】X10格输公式“=COUNTIF(B10:V10,\”(这里假设上班时间为8:30)回车。该格中便会出现选中员工所有迟于8:30上班的工作日天数。同理输入公式“=COUNTIF(B3:V3,\”(假设下班时间为17:00)回车。该格中便会出现选中员工所有早于17:00下班的工作日天数。
(3)在【事假次数】AA10格输入公式“=COUNTIF(B2:V2,\事假\”回车。AB2单元格中便出现了选中员工本月的事假次数。
(4)其他人的统计方法可以利用Excel的公式和相对引用功能来完成。
(5)单击“工具/选项/重新计算”选项卡,并单击“重算活动工作表”按钮。这样所有员工的考勤就全部统计出来了。
COUNTIF函数只能有一个条件,如大于90,为=COUNTIF(A1:A10,\介于80与90之间需用减,为 =COUNTIF(A1:A10,\,\
INDEX数用来返回表或区域中的值或值的引用。函数有两种形式:数组和引用。知识点 数组形式通常用来返回数值或数组数值,引用形式通常返回引用,这里我们学习到得是数组形式。 INDEX(array,row_num,column_num) array:为单元格区域或数组常量。如果数组值包含一行或一列,则只要选择相对应的一个参数row_num或column_num。如果数组有多行或多列,但是只使用row_num或column_num,INDEX函数则返回数组中的整行或整列,且函数语法 返回值也为数组。 row_num:为数组中的某行的行序号,函数从该行返回数值。如果省略row_num,则必须有column_num。 column_num:为数组中某列的序列号,函数从该列返回数值。如果省略 column_num,则必须有row_num。 函数说明 知识点 函数语法 ROW函数用来返回引用的行号。 ROW(reference) Reference:为需要得到其行号的单元格或单元格区域。 如果省略reference,则指ROW函数对所在单元格的引用。如果reference函数说明 知识点 函数语法 函数说明
如果同时使用row_num和column_num,INDEX函数则返同row_num和column_num交叉处的单元格的数值。 为一个单元格区域,并且ROW函数作为垂直数组输入,ROW函数则将rcference的行号以垂直数组的形式返回。 COLUMN函数用来返回给定引用的列标。 COLUMN(reference) Reference:为需要得到其列标的单元格或单元格区域。 如果省略reference,则假定为是对COLUMN函数所在的单元格的引用。25