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

时间:2016-02-19 06:12:45

标签: excel

如图所示,我在一列中有5组2个 我希望它能让每一组都在自己的专栏中 有没有办法做到这一点?

我尝试了文字到列,但它没有用。

excel image

4 个答案:

答案 0 :(得分:1)

你可以用例如式;将此输入C1并向右和向右填充:
=OFFSET($A$1,ROW()-1+(COLUMN()-3)*6,0)

enter image description here

答案 1 :(得分:1)

一般解决方案

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

enter image description here

实现我想要的代码是:

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

N 替换为您想要的数字(以及您的特定值的原点和目标单元格,在此示例中为B2和E4),并垂直和水平展开公式以形成所需的矩阵<列> N 列。对于N = 3的情况,您得到:

enter image description here

(PS:如果您的数组是水平的,请使用转置转换为垂直。然后您可以转置结果矩阵,以获得最终结果。)

<强>解释

逻辑很简单。函数OFFSET有三个强制输入。第一个是要转换的数组的第一个点(在上面的示例中,$B$2。您选择的点的索引为0,索引为1的索引为1,等等。想要将这些有序索引放入矩阵形式,如下所示(对于N = 3的情况):

enter image description here

移动这些索引的规则在OFFSET函数的第二个条目中给出。这基本上是一个计算序列0,1,2,3 ...的公式,使用一些固定值(您放置结果的第一个单元格的行和列的数量,ROW($E$4)和{{ 1}},分别等于4和5),以及放置数字(COLUMN($E$4)ROW())的单元格的变量值。该公式计算实际行和参考行号之间的差异,将其缩放N,并添加实际列和参考列之间的任何差异。该公式为我们所需的输出矩阵提供了所需的系列0,1,2,3 ....

最后,COLUMN()的最后一项等于零,因为我们正在使用垂直数据列进行变换,因此不需要水平偏移。

答案 2 :(得分:0)

要将一列按列一序拆分成多列,即不转置,我们可以修改公式如https://www.extendoffice.com/documents/excel/3132-excel-convert-vector-to-matrix.html所示,这是行一序的解决方案,即有转置,交换ROW()和COLUMN()的角色,示例代码:

=OFFSET($A$1:$A$10494,ROW()-ROW($B$1)+((COLUMN()-COLUMN($B$1))*(ROWS($A$1:$A$10494)/18)),0,1,1)

这里 $a1:$a$10494 是源,$b$1 是目标,18 是要拆分的列数。 例如,这可用于获取 pdb 中 %debug 打印输出的表结构,这会将输出拆分为窄带。

答案 3 :(得分:-1)

取全部电池,将其除以3,然后剪切并粘贴。我浪费了30分钟来尝试那里提供的所有解决方案。

我放弃了,现在我的项目完成了。只花了大约15秒。

相关问题