如图所示,我在一列中有5组2
个
我希望它能让每一组都在自己的专栏中
有没有办法做到这一点?
我尝试了文字到列,但它没有用。
答案 0 :(得分:1)
答案 1 :(得分:1)
一般解决方案
想象一下,我有一个从单元格 B2 开始的垂直数组,我想将其分成 N 堆积列。如图所示,我将从 E4 单元格中放置这些列。
实现我想要的代码是:
+OFFSET($B$2,(ROW()-ROW($E$4))*N+(COLUMN()-COLUMN($E$4)),0)
将 N 替换为您想要的数字(以及您的特定值的原点和目标单元格,在此示例中为B2和E4),并垂直和水平展开公式以形成所需的矩阵<列> N 列。对于N = 3的情况,您得到:
(PS:如果您的数组是水平的,请使用转置转换为垂直。然后您可以转置结果矩阵,以获得最终结果。)
<强>解释强>
逻辑很简单。函数OFFSET
有三个强制输入。第一个是要转换的数组的第一个点(在上面的示例中,$B$2
。您选择的点的索引为0,索引为1的索引为1,等等。想要将这些有序索引放入矩阵形式,如下所示(对于N = 3的情况):
移动这些索引的规则在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秒。