엑셀 파일을 다루다 보면 여러 개의 CSV 파일을 접하게 되는 경우가 많습니다. 이때 흩어져 있는 CSV 파일들을 하나의 통합 문서로 합쳐야 할 필요가 자주 생기는데요. 이 글에서는 엑셀에서 CSV 파일을 여러 시트로 병합하는 방법을 단계별로 자세히 알려드립니다.
CSV 파일을 여러 엑셀 시트로 병합하기
예를 들어, 학년별 성적표가 담긴 3개의 CSV 파일이 있다고 가정해 보겠습니다. 각 파일에는 학생 이름, 과목, 점수가 기록되어 있습니다. 이 파일들을 하나의 통합 문서 안에 서로 다른 시트로 나누어 병합하고 싶다면, 아래의 단계별 가이드를 따라 해보세요.
📌 1단계: VBA용 모듈 준비하기
가장 먼저 VBA 코드를 작성할 수 있도록 모듈을 삽입하고 준비해야 합니다.
- 개발 도구(Developer) 탭으로 이동한 후 Visual Basic 도구를 클릭합니다.
그러면 VBA 편집기(VB Editor) 창이 열립니다.
- 상단의 삽입(Insert) 탭을 클릭하고 모듈(Module) 옵션을 선택합니다.
이제 VBA 코드를 입력할 수 있는 모듈이 준비되었습니다.
📌 2단계: VBA 코드 작성 및 저장하기
다음으로, 병합에 사용할 VBA 코드를 작성해야 합니다.
- 먼저 모듈 1(Module 1)을 클릭합니다.
- 아래 코드를 VBA 편집기에 그대로 입력합니다.
Sub MergeCSVFiles()
Dim openFiles As Variant
Dim I As Integer
Dim wb As Workbook
Dim mergedWb As Workbook
Dim delimiter As String
Dim screen As Boolean
On Error GoTo ErrHandler
screen = Application.ScreenUpdating
Application.ScreenUpdating = False
delimiter = ";"
openFiles = Application.GetOpenFilename("CSV Files (*.csv), *.csv", , "Merge CSV Files", , True)
If TypeName(openFiles) = "Boolean" Then
MsgBox "No files were selected", , "Merge CSV Files"
GoTo ExitHandler
End If
I = 1
Set mergedWb = Workbooks.Open(openFiles(I))
mergedWb.Sheets(1).Copy
Set wb = Application.ActiveWorkbook
mergedWb.Close False
Do While I < UBound(openFiles)
I = I + 1
Set mergedWb = Workbooks.Open(openFiles(I))
mergedWb.Sheets(1).Move , wb.Sheets(wb.Sheets.Count)
Loop
ExitHandler:
Application.ScreenUpdating = screen
Set wb = Nothing
Set mergedWb = Nothing
Exit Sub
ErrHandler:
MsgBox Err.Description, , "Merge CSV Files"
Resume ExitHandler
End Sub
- 키보드에서 Ctrl + S를 눌러 VBA 코드를 저장합니다.
그러면 Microsoft Excel 대화 상자가 나타나는데, 이때 아니요(No) 버튼을 클릭합니다.
- 다른 이름으로 저장(Save As) 창이 열리면,
- 파일 형식(Save as type)을 .xlsm 매크로 사용 통합 문서로 변경한 후 저장(Save) 버튼을 클릭합니다.
이제 VBA 코드가 완벽하게 작성되고 저장되었습니다. 참고로, VBA가 포함된 파일은 반드시 .xlsm 형식으로 저장해야 코드가 정상적으로 유지됩니다.
📌 3단계: 코드 실행하여 CSV 파일 병합하기
마지막 단계입니다. 작성한 VBA 코드를 실행하여 CSV 파일을 여러 시트로 병합해 보겠습니다.
- 개발 도구(Developer) 탭 >> 매크로(Macros) 도구로 이동합니다.
매크로(Macro) 창이 열리면 다음과 같이 진행합니다.
- 매크로 이름(Macro name) 목록에서 MergeCSVFiles를 선택하고 실행(Run) 버튼을 클릭합니다.
그러면 모든 CSV 파일이 새 통합 문서의 개별 워크시트로 병합됩니다.
병합된 파일을 제대로 저장하려면 아래 단계를 따르세요.
- 파일(File) 탭으로 이동합니다.
- 다른 이름으로 저장(Save As) 옵션을 클릭합니다.
- 대화 상자에서 찾아보기(Browse)를 선택합니다.
- 파일 이름(File name) 입력란에 원하는 이름을 입력하고 저장(Save) 버튼을 클릭하면 끝납니다.
이제 CSV 파일들이 하나의 통합 문서 내 여러 시트로 성공적으로 병합되었습니다.
파워 쿼리(Power Query)로 CSV 파일을 한 시트에 병합하는 방법
VBA 대신 여러 CSV 파일을 하나의 시트로 합치고 싶다면, 엑셀의 파워 쿼리(Power Query) 기능을 활용할 수 있습니다. 아래 단계를 따라 해보세요.
📌 단계:
- 먼저 데이터(Data) 탭 >> 데이터 가져오기(Get Data) >> 파일에서(From File) >> 폴더에서(From Folder) 옵션을 차례로 선택합니다.
- 탐색 창이 열리면 CSV 파일들이 저장된 폴더를 선택하고 열기(Open) 버튼을 클릭합니다.
파워 쿼리 창이 열리고 가져올 CSV 파일 목록이 표시됩니다.
- 결합(Combine) 버튼 >> 데이터 결합 및 변환(Combine & Transform Data) 옵션을 클릭합니다.
파일 결합(Combine Files) 창이 나타나면:
- 미리 보기를 확인하고 데이터 구분 기호(Delimiter)를 실제 파일에 맞게 세미콜론(Semicolon) 등으로 지정합니다.
- 확인(OK) 버튼을 클릭합니다.
파워 쿼리 창에서 병합된 결과를 확인할 수 있습니다.
- 마지막으로 파워 쿼리 창의 파일(File) 탭에서 닫기 후 로드(Close & Load) 버튼을 클릭하고 닫기 후 로드 옵션을 선택합니다.
이렇게 하면 모든 CSV 파일이 엑셀의 하나의 시트로 병합됩니다.
💡 유의사항
- 모든 파일과 데이터에서 동일한 구분 기호(delimiter)를 일관되게 사용해야 합니다.
- 병합하려는 모든 CSV 파일은 같은 행·열 구조로 정렬되어 있어야 깔끔하게 병합됩니다.
마무리
지금까지 엑셀에서 CSV 파일을 여러 시트로 병합하는 전체 과정을 살펴보았습니다. VBA 매크로를 활용하면 여러 시트로 분리하여 병합할 수 있고, 파워 쿼리를 활용하면 하나의 시트로 손쉽게 통합할 수 있습니다. 글을 꼼꼼히 읽고 직접 실습해 보시길 추천드립니다. 추가 질문이나 의견이 있다면 언제든 댓글로 남겨주세요.