在EXCEL表格里如何将多行多列的一个区域按行合并成一列?俗称的矩阵横向取值排成单列。这里的数据仅做演示用,重点是实现的方法。
可以用函数公式,也可以不用函数公式,我们先来看函数公式:
=INDEX($A$2:$F$19,INT(ROW(A6)/6),MOD(ROW(A6),6)+1)
翻译成中文
取值(给定区域,行号,列号)
INDEX函数在给定区域即左侧的多行多列表格区域,根据给出的行号和列号返回其交叉的单元格值。
问题的关键就在关于如何求出行号和列号。
观察左侧表格是一个6列18行的表格,将他们依行排列成一列,也就是第一行的1到6依次排成一列后,开始第二行的6个数字排列,然后是第三行……
我们将函数公式里的行号和列号拆开成两列,显示在I列和J列里。行号从第一行开始分别对应6个递增列号后,变成第二行,而列号又从1开始,直到6后,行号又变成3,列号再次从1循环。
因此这里用了ROW(A6)/6取整函数,即从6、7、8、9、10、11除以6的整数部分都是1,而12、13、14、15、16、17除以6的整数部分都是2,依次类推。
同样的MOD(ROW(A6),6)+1,即从6、7、8、9、10、11除以6的余数部分分别是1、2、3、4、5、6,而12、13、14、15、16、17除以6的余数部分都是1、2、3、4、5、6,依次类推。
说白了也就是通过取整函数和求余函数,列出一个重复18次的1到6的嵌套循环编号。
没有弄明白函数公式的意思,复制公式套用就行
要修改的地方也就是:=INDEX($A$2:$F$19,INT(ROW(A6)/6),MOD(ROW(A6),6)+1)
第一个处选择要合并的区域,第二处根据合并区域的列数修改,如果是3列,就是A3/3,如果是5列,就是A5/5。
其实我个人建议是能简化就简化,毕竟函数公式不是人人都能理解的,下面这种方法,小白也会用。
在EXCEL表格里复制要合并的区域,打开一个空白WORD文档,在文档里粘贴上复制的表格,点击表格后,菜单栏上新增加“布局”选项,单击“转换为文本”。
弹出窗口,勾选“段落标记”选项。为啥是段落标记,大家可以看到表格数字的后面都有一个回车箭头符号,这就是段落标记。
点击确定后,表格根据行转换成一列,选中并复制。
返回工作表里,粘贴上数据。瞧,多行多列的矩阵表格是不是立即就排成一列了,这种方法是不是又好理解又好操作呢?
在EXCEL还是WORD文档里,同一个要求都能用多种方式实现,关键就看哪种方法能简单便捷,就采用哪种方式。