15 행마다 수많은 행에 걸쳐 하나로 결합 3 row 4 etc… 으로: row 1

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



답변

내가 가장 잘 이해 한 것을 바탕으로 CONCATENATE를 사용하지만 INDEX & ROW와 함께 데이터를 조작하는 솔루션을 제안합니다.

샘플 데이터는 A1 이하로 시작하는 A 열에 있습니다. 이 시작 셀이 다르면 수식에서 약간의 조작이 필요합니다.

수식이 길어지고 다소 단축하기 위해 Name Manager에서 Name1이라는 Name을 사용했습니다.

이름 관리자로 이동하여 수식을 다음과 같이 이름 1이라는 새 이름을 만듭니다.

=(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의 15 행마다 셀 B1, B2 등에서 서로 아래로 쌓인 단일 셀로 연결됩니다.


답변