indirect函数多条件查询(一列转多行多列)
有一个表格,里面只有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”,以此类推。
以上就是本期的教程,当你把一条公式跟我这样拆出来理解,问题就变得很简单了,希望您可以转发分享点个赞,鼓励支持下小编哦~
您的赞赏、转发、评论、点赞都是对小编的鼓励与支持,谢谢您!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com