引例
在Excel中,现在有一行数据
现在想通过公式把他按顺序拆分成一个3*3的表格,解决方法如下:
- 在操作区域之外任选一个单元格。
- 输入下面的公式:
=INDEX($1:$1,1,COLUMN(A:A)+(ROW(2:2)-2)*10)
- 按回车键,可以看到单元格复制了第一个元素的值。
- 对单元格在3*3表格范围内进行横竖拖拽即可。
公式原理
在Index
函数的三个参数上做文章,以起到给定数据在输出区域中的坐标,能输出源区域中的第几个数据。
- 第一个参数:数据所在行作为源区域。
为了让其在拖拽中不改变,需要用绝对引用锁定位置。 - 第二个参数:行坐标是常数1。
- 第三个参数:列坐标即数据在源行中的序号。
显然数据在输出区域中的列坐标和在输出区域中的行坐标随输出单元格的变化而变化,因此通过相对引用来得到这两个坐标。
至于输出数据的列数,则是一个常数。
预备知识
Index函数
Index
函数用来进行对所输入位置的信息进行引用。
Index
函数的格式为:
=Index( array, row_num, column_num)
- 第一个参数是源区域。如A2:C6表示源区域为第2-6行和第A-C列交叉处的15个单元格。
- 第二、三个参数是行、列坐标。最终的结果就是引用出源区域内输入坐标处这一个单元格内的内容。
- 如果源区域是多个子区域(本例中没有用到):
(1)、多个子区域用逗号隔开输入在array参数位置,最后用一个括号统一括起来。
(2)、填写第四个参数,以指明目前使用哪个子区域。
Row/Column函数
Row
/Column
函数只有一个参数即其输入区域,返回输入区域的首行/首列在EXCEL工作表中的序号。
比如Row(3:4)
返回值为3,Column(B:B)
返回值为2,Row(A3:B5)
返回值为3.