대용량 데이터를 다루다 보면 Microsoft Excel에서 일정한 간격(n개)으로 반복되는 행들을 열로 변환해야 하는 경우가 자주 발생합니다. 전치(transpose) 작업은 올바른 방법만 알면 생각보다 간단하고, 무엇보다 시간을 크게 절약할 수 있습니다. 이 글에서는 실제 예시와 함께 엑셀에서 n행마다 열로 효율적으로 변환하는 두 가지 빠르고 실용적인 방법을 소개합니다.
엑셀에서 n행마다 열로 변환하는 2가지 방법
예시로 Armani Group의 여러 영업 담당자 정보가 담긴 워크시트가 있다고 가정해 보겠습니다. 영업 담당자의 이름, ID 번호, 그리고 매출액은 각각 B열, C열, D열에 입력되어 있습니다. INDEX 함수를 활용하면 n행마다 손쉽게 열로 변환할 수 있으며, VBA 코드를 사용하는 방법도 있습니다. 여기서는 설명의 편의를 위해 4행씩 열로 변환하는 과정을 살펴보겠습니다. 아래는 오늘 작업에 사용할 데이터셋의 전체 모습입니다.

1. INDEX 함수로 n행마다 열로 변환하기
INDEX 함수를 사용하면 복잡한 수동 복사·붙여넣기 없이도 n행마다 열로 깔끔하게 변환할 수 있습니다. 이 방법은 특히 데이터 양이 많을 때 오류를 줄이고 작업 시간을 단축하는 데 큰 도움이 됩니다. 아래 단계를 따라 4행씩 열로 변환해 보겠습니다.
1단계:
- 먼저 데이터셋을 확인합니다. 우리는 4행마다 하나의 열로 데이터를 재배치할 것입니다.

- 그다음, 결과를 출력할 셀을 선택합니다. 여기서는 작업 편의상 F5 셀을 선택합니다.

- F5 셀을 선택한 상태에서 아래 수식을 입력합니다.
=INDEX($B:$B,ROW(B5)*4-4+COLUMN(B5))

- 키보드에서 Enter 키를 누르면 F5 셀에 첫 번째 값인 'David'가 표시됩니다. 이 수식은 ROW 함수와 COLUMN 함수의 값을 조합해 4행 간격으로 원하는 위치의 데이터를 불러오는 원리입니다.

2단계:
- 이제 F5 셀의 채우기 핸들을 드래그하여 F열의 나머지 셀까지 수식을 자동 채우기(autoFill) 합니다.

- 같은 방식으로 수식을 G, H, I열로 확장하면 아래 스크린샷과 같이 4행씩 열로 정렬된 최종 결과를 얻을 수 있습니다.

함께 읽으면 좋은 글: 조건에 따라 엑셀에서 행을 열로 변환하는 방법 (2가지)
2. VBA 코드로 n행마다 열로 변환하기
다음으로 간단한 VBA 코드를 사용해 n행마다 열로 변환하는 방법을 알아보겠습니다. 반복적인 전치 작업을 자동화해야 하는 상황에서 VBA는 매우 유용합니다. 역시 동일한 데이터셋을 기준으로 4행씩 열로 변환해 보겠습니다.
1단계:
- 먼저 VBA 편집기를 엽니다. 리본 메뉴의 개발 도구(Developer) 탭에서 다음으로 이동합니다.
Developer → Visual Basic

- Visual Basic을 클릭하면 Microsoft Visual Basic for Applications 창이 즉시 열립니다. 이 창에서 VBA 코드를 넣을 모듈을 삽입합니다. 다음 경로로 이동하세요.
Insert → Module

2단계:
- 새 모듈 창이 열리면 아래 VBA 코드를 그대로 입력합니다.
Sub Transpose_Rows_to_Columns()
Dim x As Long
Dim y As Long
Dim z As Long
Application.ScreenUpdating = False
z = Cells(1, Columns.Count).End(xlToLeft).Column
For y = 1 To z Step 2
x = x + 1
Cells(1, y).Copy Destination:=Cells(x, 1)
x = x + 1
Cells(1, y + 1).Copy Destination:=Cells(x, 1)
Next y
Cells(1, 2).Resize(1, z - 1).Clear
Application.ScreenUpdating = True
End Sub

- 코드를 입력한 후 매크로를 실행합니다. 상단 메뉴에서 다음을 클릭하세요.
Run → Run Sub/UserForm

- VBA 코드 실행이 완료되면 아래 스크린샷과 같이 4행 단위의 데이터가 열로 성공적으로 변환된 것을 확인할 수 있습니다.

함께 읽으면 좋은 글: VBA로 엑셀에서 여러 열을 행으로 변환하는 방법 (2가지)
알아두면 좋은 팁
👉 Alt + F11 키를 동시에 누르면 Microsoft Visual Basic for Applications 창을 바로 띄울 수 있습니다.
👉 리본 메뉴에 개발 도구(Developer) 탭이 보이지 않는다면 직접 활성화할 수 있습니다. 다음 경로로 이동하세요.
파일 → 옵션 → 리본 사용자 지정
마무리
지금까지 소개한 두 가지 방법, 즉 INDEX 함수와 VBA 코드를 활용하면 엑셀에서 n행마다 열로 변환하는 작업을 훨씬 빠르고 생산적으로 처리할 수 있습니다. 두 방법 중 데이터 규모와 반복 여부에 따라 더 적합한 방식을 선택해 활용해 보시기 바랍니다. 궁금한 점이나 추가 질문이 있다면 언제든지 댓글로 남겨주세요.
관련 글
- 엑셀에서 역방향 전치(Reverse Transpose) 하는 방법 (3가지)
- 엑셀에서 열을 행으로 변환하는 방법 (6가지)
- 파워 쿼리(Power Query)로 엑셀 열을 행으로 변환하기
- 셀 값 기준으로 엑셀 열을 행으로 변환하는 방법
- 엑셀 조건부 전치(Conditional Transpose) 활용법 (예시 2가지)
- 엑셀에서 열을 작은따옴표가 포함된 쉼표 구분 목록으로 변환하는 방법
- 엑셀 VBA로 전치하는 방법 (3가지)