将每 15 行合并为一行

将每 15 行合并为一行

我的数据分布在 45000 行(单列)中。我需要将每 15 行合并为一行。因此,最终我需要将每 15 行的数据合并为 3000 行。

从:

row 1 
row 2
row 3
row 4
etc...

进入:

row 1  (rows 1-15)
row 2  (rows 16-30)
row 3  (rows 31-45)
row 4  (rows 46-60)
etc...

我知道如何将 15 行合并为一行,但不知道如何创建模块以在所有 45000 行中重复此操作。

到目前为止,我使用 CONCATENATE 函数将多行(15)合并为一行。但是行数实在太多(45000),我需要找到在所有行中自动执行此操作的方法。所以我认为我需要使用 VBA 创建一个宏。

行中的数据是数字和字符串的组合,下面是前几行的示例:

20181102-112745254375,$IIGLL,4342.3344,N,01548.0639,E,102745.00,A,A*7E
20181102-112745306452,$IIHDG,264.0,,,3.90,E*18
20181102-112745342864,$IIHDT,267.9,T*28
20181102-112745385244,$IIHDM,264.0,M*22

答案1

根据我的最佳理解,我建议采用仍然使用 CONCATENATE 但结合 INDEX 和 ROW 来操作数据的解决方案。

样本数据位于 A 列,从 A1 开始,然后是以下单元格。如果此起始单元格不同,则需要对公式进行轻微操作。

该公式较长,为了稍微缩短它,我在名称管理器中使用了名为 Name1 的名称。

转到名称管理器并创建一个名为 Name1 的新名称,其公式为

=(ROW()-1)*15

在此处输入图片描述

现在在 B1 中输入以下公式

=CONCATENATE(INDEX($A:$A,Name1+1),INDEX($A:$A,Name1+2),INDEX($A:$A,Name1+3),INDEX($A:$A,Name1+4),INDEX($A:$A,Name1+5),INDEX($A:$A,Name1+6),INDEX($A:$A,Name1+7),INDEX($A:$A,Name1+8),INDEX($A:$A,Name1+9),INDEX($A:$A,Name1+10),INDEX($A:$A,Name1+11),INDEX($A:$A,Name1+12),INDEX($A:$A,Name1+13),INDEX($A:$A,Name1+14),INDEX($A:$A,Name1+15))

并将其向下拖拽至所需的行。

现在,从 A 列的第 1 个单元格开始,每 15 行应连接成一个单元格,并在单元格 B1、B2 等中一个接一个地堆叠。

相关内容