EXCEL
下面是一个工资表,要求生成工资条,每个工资条必须包函一行标题和一行数据,每组数据之间隔一空行。
该工资表存在工作表sheet1中,我们要做的工资条准备存放在sheet3中,选中sheet3的A1:O1单元格区域,输入下列数组公式:=CHOOSE(MOD(ROW(1:1),3)+1,'',sheet1!$A$1:$O$1,OFFSET(sheet1!$A$1:$O$1,INT(ROW(1:1)/3)+1,))
选中输入公式的单元格,鼠标变成填充柄时,向右、向下拉,即得到下图所示的工资条。
row( )函数返回的是一个引用的行号,括号内为单元格或单元格区域。上例中row(1:1),返回的值为1。
MOD(number,divisor),是一个求余数函数,Number为被除数,Divisor为除数,MOD(ROW(1:1),3返回的值为1。
INT(number)为向下取最接近的整数,INT(ROW(1:1)/3)返回的值为0。
OFFSET(reference,rows,cols,height,width),Reference 必须为单元格或单元格区域,是偏移量的参照标的;rows为相对于Reference所在单元格的行偏移量,正数向下,负数向上;cols为相对于Reference所在单元格的列偏移量,正数向右,负数向左;height/width分别为新引用几行/几列,有时也可以省略。OFFSET(sheet1!$A$1:$O$1,INT(ROW(1:1)/3)+1,)返回的值为1。
CHOOSE(Index,value1,value2,...) 函数,index 必要参数,可以为数值表达式或字段,它的运算结果是一个数值,且界于 1 和可选择的项目数之间;Index 为 1, 返回 value1;如果为 2,返回 value2,以此类推。上例中当公式分别填充到A1\A2\A3时,返回的结果如下:
希望对大家有用,如果有用的话可以收藏和分享噢!动动手指就可以了!