Excel,将一列中的数据转换为多列

如图所示,我在一列中有5组2列。
我想这样每个集合都在它自己的列中。
有没有办法做到这一点?

我尝试了文本到列,但它没有工作。

Excel图像

你可以用例如公式来做到这一点。 input这个到C1并填写和权利:
=OFFSET($A$1,ROW()-1+(COLUMN()-3)*6,0)

在这里输入图像说明

一般解决scheme

想象一下,我有一个从B2单元格开始的垂直数组,我想将它分成N个堆叠的列。 如图所示,我将从单元格E4中放置这些列。

在这里输入图像说明

达到我想要的代码是:

 +OFFSET($B$2,(ROW()-ROW($E$4))*N+(COLUMN()-COLUMN($E$4)),0) 

用你想要的数字replaceN (在本例中用你的特定值B2和E4代替原始和目标单元格),并垂直和水平地展开公式,以形成你想要的N列matrix。 对于N = 3的情况,您会得到:

在这里输入图像说明

(PS:如果你的数组是水平的,使用转置变换到垂直,然后你可以转置matrix结果,得到最终的结果。)

说明

逻辑很简单。 OFFSETfunction有三个强制input。 第一个是你想要变换的数组的第一个点(在上面的例子中, $B$2 ,你select的索引是0,索引是1,等等。所以,你想要的是将这些有序索引放入matrixforms,如下所示(对于N = 3的情况):

在这里输入图像说明

移动这些索引的规则在OFFSET函数的第二项中给出。 这基本上是一个计算序列0,1,2,3 …使用一些固定值(第一个单元格的行和列的数目,你要把结果, ROW($E$4)COLUMN($E$4) ,它们分别等于4和5)以及要放置数字( ROW()COLUMN() )的单元格的variables值。 该公式计算实际行和参考行号之间的差异,按N缩放,并添加实际列和参考列之间的任何差异。 这个公式给出了期望的输出matrix所需的系列0,1,2,3 …。

最后, OFFSET的最后一项等于零,因为我们正在用一个垂直的数据列进行转换,所以不需要水平偏移。