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 등에서 서로 아래로 쌓인 단일 셀로 연결됩니다.