在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文档,在文档里粘贴上复制的表格,点击表格后,菜单栏上新增加“布局”选项,单击“转换为文本”。