Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

엑셀에서 CSV 파일을 여러 시트로 병합하는 방법 (쉬운 단계별 가이드)

엑셀 파일을 다루다 보면 여러 개의 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 매크로를 활용하면 여러 시트로 분리하여 병합할 수 있고, 파워 쿼리를 활용하면 하나의 시트로 손쉽게 통합할 수 있습니다. 글을 꼼꼼히 읽고 직접 실습해 보시길 추천드립니다. 추가 질문이나 의견이 있다면 언제든 댓글로 남겨주세요.