1

У меня есть данные в 45000 строк (один столбец). Мне нужно объединить каждые 15 строк в один ряд. В итоге мне нужно иметь 3000 строк с объединенными данными из каждых 15 строк.

от:

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 ответ1

1

Основываясь на том, что я лучше всего понимаю, я предлагаю решение, которое все еще использует CONCATENATE, но в сочетании с INDEX & ROW для манипулирования данными.

Образцы данных находятся в столбце A, начиная с A1 и ниже. Если эта начальная ячейка отличается, то в формуле требуются небольшие манипуляции.

Формула длинная, чтобы ее сократить, я использовал имя в менеджере имен, называемое Name1.

Перейдите в Name Manager и создайте новое имя с именем 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))

и перетащите его вниз до предполагаемых рядов.

Теперь каждые 15 строк из столбца A, начиная с 1-й ячейки, должны быть объединены в одну ячейку, расположенную друг над другом в ячейках B1, B2 и так далее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .