问题场景
- 通过工资表制作工资条。(主要是学习方法和思路)
场景
- 将工资表转换对应成每个员工的工资条,打印出来再通过裁剪发下去。
目标
- 工资表转换成工资条,且留有空行方便裁剪。
解决方案
用VLOOKUP函数和COLUMN函数实现
- VLOOKUP函数解释:
=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
#lookup_value:要查找的值;table_array:要查找的区域;col_index_num:返回数据在查找区域的第几列;range_lookup:精确匹配/近似匹配;
#详情可参考VLOOKUP函数第1节。
- COLUMN函数解释:
=COLUMN(reference);#COLUMN():所选择的某一个单元格所在第几列,即它是第几列。
#COLUMN(D3):这个单元格所在第4列,返回结果为4。
-
- 注:这里VLOOKUP函数的第3个参数【col_index_num:返回数据在查找区域的第几列】用“COLUMN(reference)”代替。
-
第一步:将工资表的表头复制到工资条表中,在序号列的A2单元格输入:1
-
第二步:在工资条表中的B2单元格英文状态下输入:=VLOOKUP($A2,工资表!$A:$J,COLUMN(),0)。
-
公式解释:
-
- $A2:查找值为序号1,用相对引用(相对引用和绝对引用参考VLOOKUP函数第1节),也就是在A列查找;
-
- 工资表!$A:$J:查找区域为为【工资表】的A到J列;
-
- COLUMN():返回的是【COLUMN()】算出的值,也就是COLUMN()所在的单元格是第几列就返回几,对应VLOOKUP函数的第三个参数;
-
- 0:精确查找。
- 第三步:鼠标移到B2单元格的右下角,出现实心的黑色【+】,按住右键从左往右拉动填充。
-
- 填充结果如下:
- 第四步:填充后选中三行:第1至3行,鼠标移至J3单元格右下角,出现实心的黑色【+】号,按住右键往下拉动,直至填充完工资条(注:将第二行A2到J2选中,添加边框,之后再拉动填充,加第3行空白行方便裁剪,不需要加边框)
- 第五步:最后结果,可打印出来裁剪成每个员工的工资条。
总结
- 实际业务场景复杂时,如果不能一次性解决问题,可择优或结合使用,多尝试,办法总比困难多。