由工资表写成每一位员工的资条,效果如下:
由工资表写成每一位员工的资条,效果如下:
今天有位朋友说他的数据量有点大,不想用这种填充序号排序的方法,有没有函数公式可以一次完成生成所有员工的工资条?
今天给大家一种函数方法。
公式实现
在A1单元格输入公式:
=CHOOSE(MOD(ROW(),3)+1,””,工资表!A$2,INDEX(工资表!$A$2:$F$10,(ROW()+4)/3,COLUMN()))
公式向下向右填充,可得所有员工的工资条。
如下图:
公式解析
1、首先弄清楚工资条内容与当前行数的规律:
行数除以3,余数为1,则填写“编号”“姓名”“职称”“基本工资”等信息;
行数除以3,余数为2,则填写每位员工的个体工资信息;
行数除以3,余数为0,则填写两位员工之间的间隔行,即空白。
2、再弄清楚CHOOSE函数的用法:
语法:
CHOOSE(index_num, value1, [value2], …)
CHOOSE函数语法具有以下参数:
index_num 必需。 用于指定所选定的数值参数。 index_num必须是介于1 到 254 之间的数字,或是包含1 到 254 之间的数字的公式或单元格引用。
如果 index_num为 1,则 CHOOSE返回 value1;如果为 2,则 CHOOSE返回 value2,以此类推……
3、本公式中:
依据MOD(ROW(),3)+1的值:
如果是1,返回””,即空值;
如果是2,返回工资表!A$2;
如果是3,返回INDEX(工资表!$A$2:$F$10,(ROW()+4)/3,COLUMN()),即工资表!$A$2:$F$10数据区域(ROW()+4)/3行与COLUMN()的交叉点单元格值。
ROW()、COLUMN()指公式所在的当前行当前列。
choose函数的具体用法参考:Excel068 CHOOSE函数用法集锦——与SUM、VLOOKUP、IF、MATCH配合使用,查找更轻松
INDEX函数的具体用法参考:Excel050 INDEX、VLOOKUP、HLOOKUP、LOOKUP排排站,查询函数任你选
工资条中,“编号”“姓名”“职称”“基本工资”等信息行填充为绿色,是用条件格式的公式设置的,公式为=mod(row(),3)=1,含义为如果当前行除以3的余数为1.
如下图: