一列转多列,可以有很多种排列顺序,今天这种顺序可以理解为一种特别的序列号。
案例:将下图 1 中的姓名按 C、D 列的排列顺序转换成两列,效果如下图 2 所示。
解决方案:首先我们先要理解数字的排列用公式怎么实现。
1. 在 C2 单元格中输入以下公式 --> 向右向下拖动复制公式:
=ROW(A1)*2-2+COLUMN(A1)
公式释义:
ROW(A1)*2-2:
ROW(A1) 返回 A1 的行号 1;随着公式下拉,行号以步长 1 顺序递增;
...*2:将上述顺序号 *2,纵向数字为 2、4、6、8……
...-2:数字变成 0、2、4、6……
...+COLUMN(A1):
当向下拖动时,column 的结果不变,始终为 1,与上述数字相加后就变成了 1、3、5、7……
向右拖动的话,column 会以步长 1 递增,于是第二列就变成了 2、4、6、8……
搞懂了这个公式原理,我们再基于此基础上套用 offset 函数,从而将数字替换成列表中的姓名。
2. 将 C2 单元格中的公式修改如下 --> 向右向下拖动公式:
=OFFSET($A$1,ROW(A1)*2-2+COLUMN(A1),)
公式释义:
offset 函数的作用是返回指定行数和列数的区域,语法为 offset(起点,要偏移的行数,要偏移的列数,[引用的高度],[引用的宽度]);
这里的公式含义为以 A1 单元格为起点,偏移行数为第二个参数的结果,列不偏移;第二个参数就是步骤 1 中的公式
3. 给结果数据表添加标题和框线。