有一个表格,里面只有1列数据,但是有40行,为了查看可以更加方便和打印时节约纸张,现在需要将这1列数据转换成8行5列的数据,不手动复制粘贴,你有什么更好的方法解决吗? 今天,我就教大家一个方法,利用Excel中的INDIRECT+ROW+COLUMN函数,快速达到我们想要的效果。 具体操作步骤如下: 1、选中C4单元格 -- 在编辑栏中输入公式“=INDIRECT('A'&5*ROW(A1)-4+COLUMN(A1))&''”-- 按回车键回车,得到第一个姓名“张晓玲”。 2、将公式往右拖动至G4单元格,往下拖动至G11单元格,即可将A列的姓名转换成5列8行的表格,如下图所示。 3、动图演示如下。 4、公式解析。 (1)ROW(A1): 返回A1的行号。将公式往右填充时,行号不变,列号改变。将公式往下填充时,列号不变,行号依次递增1。也就是说,=ROW(A1),往右拖动时,会变成=ROW(B1),=ROW(C1),...,往下拖动时,会变成=ROW(A2),=ROW(A3),...。 (2)COLUMN(A1): 返回A1的列号。将公式往右填充时,行号不变,列号改变。将公式往下填充时,列号不变,行号依次递增1。也就是说,=COLUMN(A1),往右拖动时,会变成=COLUMN(B1),=COLUMN(C1),...,往下拖动时,会变成=COLUMN(A2),=COLUMN(A3),...。 (3)5*ROW(A1)-4+COLUMN(A1): ROW(A1)=1,COLUMN(A1)=1,所以公式5*ROW(A1)-4+COLUMN(A1)=5*1-4+1=2。当公式从左往右填充时,同一行的行号不会发生改变,但是列值会发生改变。也就是说公式从左往右填充时,COLUMN(A1)变成COLUMN(B1),COLUMN(C1),...,对应的值分别为1,2,3,...。 当公式从上往下填充时,同一行的行号发生改变,但是列值不会发生改变。也就是说公式从上往下填充时,ROW(A1)变成ROW(A2),ROW(A3),...,对应的值分别为1,2,3,...。 (4)'A'&5*ROW(A1)-4+COLUMN(A1): &是文本连接符,用字符A将公式“5*ROW(A1)-4+COLUMN(A1)”所得到的结果连接起来,就会得到如下图。 (5)=INDIRECT('A'&5*ROW(A1)-4+COLUMN(A1)): 由第(4)步的公式可知,A2,A3,A4,...,这些都是姓名所在的单元格地址,这里我们使用INDIRECT函数,可以将一个字符表达式或名称转换为地址引用,得到对应单元格的姓名。 (6)=INDIRECT('A'&5*ROW(A1)-4+COLUMN(A1))&'': 公式后面的&''表示如果转换后的数据不够时,把显示的0转成空值显示。如下图所示。 总结:公式=INDIRECT('A'&5*ROW(A1)-4+COLUMN(A1))&''可以将1列转换成5列,也就是ROW函数前面的数值,如果要转换成6列,可以将公式“5*ROW(A1)-4”改成“6*ROW(A1)-5”,以此类推。 以上就是本期的教程,当你把一条公式跟我这样拆出来理解,问题就变得很简单了 |
|