网站首页 > 技术教程 正文
如何将一列数据转成多行多列?之前跟大家分享了2个方法,数据透视表和Power Query,今天我跟大家分享几个用函数公式实现的方法。
下图中,我们需要将A列的数据转成C:G多行多列的数据。
方法一:使用INDEX+COLUMN+ROW函数组合。
具体操作步骤如下:
1、选中C1单元格,在编辑栏中输入公式:=INDEX($A:$A,COLUMN(A$1)+5*(ROW($A1)-1))&"",按Enter键回车。
2、将公式右拉填充至G1单元格,下拉填充至G4单元格即可。
3、公式解析。
COLUMN(A$1):COLUMN函数返回一引用的列号。COLUMN(A$1)返回A1单元格所在列号,为1,如果往右填充,列号会依次增加1,如果往下填充,同一列的列号不变。
ROW($A1):ROW函数返回一个引用的行号。ROW($A1)返回A1单元格所在的行号,为1,如果往右填充, 同一行所在行号不变,如果往下填充,同一列的行号依次增加1。
=INDEX($A:$A,COLUMN(A$1)+5*(ROW($A1)-1))&"":INDEX函数是在给定的单元格区域中,返回特定行列交叉处单元格的值或引用。把COLUMN(A$1)和ROW($A1)的值代入公式,公式变成=INDEX($A:$A,1)&"",也就是在A列单元格区域中,返回第1个单元格的值。公式后面用&符号跟""连接起来,也就是在A列单元格区域中,如果没有匹配到值,就返回空,把错误值给屏蔽掉。
4、完整的动图演示如下。
方法二:使用INDEX+COLUMNS+ROWS函数组合。
1、选中C1单元格,在编辑栏中输入公式:=INDEX($A:$A,COLUMNS($C$1:C$1)+5*(ROWS($A$1:$A1)-1))&"",按Enter键回车。
2、将公式右拉填充至G1单元格,下拉填充至G4单元格即可。
3、公式解析。
COLUMNS($C$1:C$1):COLUMNS函数返回某一引用或数组的列数。COLUMNS($C$1:C$1)返回C1单元格所在列号,为1。公式往右填充,同一行的列号依次增加1,公式往下填充,同一列的列号不变。
ROWS($A$1:$A1):ROWS函数返回某一引用或数组的行数。ROWS($A$1:$A1)返回C1单元格所在的行号。公式往右填充,同一行所在的行号不变,公式往下填充,同一列所在的行号依次增加1。
=INDEX($A:$A,COLUMNS($C$1:C$1)+5*(ROWS($A$1:$A1)-1))&"":INDEX函数是在给定的单元格区域中,返回特定行列交叉处单元格的值或引用。把COLUMNS($C$1:C$1)和ROWS($A$1:$A1)的值代入公式,公式变成=INDEX($A:$A,1)&"",也就是在A列单元格区域中,返回第1个单元格的值。公式后面用&符号跟""连接起来,也就是在A列单元格区域中,如果没有匹配到值,就返回空,把错误值给屏蔽掉。
4、完整的动图演示如下。
方法三:使用INDIRECT+COLUMN+ROW函数组合。
1、选中C1单元格,在编辑栏中输入公式:=INDIRECT("a"&COLUMN(A$1)+5*(ROW($A1)-1))&"",按Enter键回车。
2、将公式右拉填充至G1单元格,下拉填充至G4单元格即可。
3、公式解析。
COLUMN(A$1):COLUMN函数返回一引用的列号。COLUMN(A$1)返回A1单元格所在列号,为1,如果往右填充,列号会依次增加1,如果往下填充,同一列的列号不变。
ROW($A1):ROW函数返回一个引用的行号。ROW($A1)返回A1单元格所在的行号,为1,如果往右填充, 同一行所在行号不变,如果往下填充,同一列的行号依次增加1。
=INDIRECT("a"&COLUMN(A$1)+5*(ROW($A1)-1))&"":INDIRECT函数返回文本字符串所指定的引用。把COLUMN(A$1)和ROW($A1)代入公式,公式变成:=INDIRECT("a"&1)&"",&符号是连接符,"a"&1表示a和1相连接,变成a1,也就是用INDIRECT函数去引用A1单元格的内容,公式后面用&符号跟""连接起来,也就是在A列单元格区域中,如果没有匹配到值,就返回空,把错误值给屏蔽掉。
4、完整的动图演示如下。
方法四:使用OFFSET+COLUMN+ROW函数组合。
1、选中C1单元格,在编辑栏中输入公式:=OFFSET($A$1,COLUMN(A$1)+5*(ROW($A1)-1)-1,0)&"",按Enter键回车。
2、将公式右拉填充至G1单元格,下拉填充至G4单元格即可。
3、公式解析。
COLUMN(A$1):COLUMN函数返回一引用的列号。COLUMN(A$1)返回A1单元格所在列号,为1,如果往右填充,列号会依次增加1,如果往下填充,同一列的列号不变。
ROW($A1):ROW函数返回一个引用的行号。ROW($A1)返回A1单元格所在的行号,为1,如果往右填充, 同一行所在行号不变,如果往下填充,同一列的行号依次增加1。
=OFFSET($A$1,COLUMN(A$1)+5*(ROW($A1)-1)-1,0)&"":OFFSET函数,是以指定的引用为参照系,通过给定偏移量返回新的引用。把COLUMN(A$1)和ROW($A1)代入公式,公式变成:=OFFSET($A$1,1,0)&"",也就是说,以A1单元格为参照系,向下移动一格,向右移动0格,也就是不移动,所以还是A1单元格的内容,公式后面用&符号跟""连接起来,也就是在A列单元格区域中,如果没有匹配到值,就返回空,把错误值给屏蔽掉。
4、完整的动图演示如下。
好了,今天就跟大家分享到这里,如果你觉得文章有用,可以转发分享给你的朋友,希望多多支持,谢谢!
猜你喜欢
- 2024-11-08 区间统计的那些事(frequency函数的运用)
- 2024-11-08 excel函数技巧:reduce+column+expand平分数据重构表格
- 2024-11-08 excel函数技巧:reduce+row+column将表格转换成以姓名为主的表格
- 2024-11-08 Vlookup Column公式组合,强强联手,你会么?
- 2024-11-08 Excel中将一列分成多列多行的操作技巧,同事分分钟完成了
- 2024-11-08 偷偷学会这个小众高能函数,我再也没有加过班
- 2024-11-08 「Flutter应用开发教程」-基本布局组件Row和Column
- 2024-11-08 Excel里面有趣的数字(有数字的表格)
- 2024-11-08 有声书音频地址合集(有声书网站比较有名)
- 2024-11-08 ROW,COLUMN函数——查找引用函数(excel中查找引用函数)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)