KutoolsforOffice— 하나의 솔루션, 다섯 가지 강력한 도구。적은 노력으로 더 큰 성과。

Excel 팁: 다중 워크시트로 데이터 분할 / 열 값 기준으로 워크북 분할

작성자Xiaoyang수정 날짜

Excel 에서 대규모 데이터셋을 관리할 때 열 지정 값을 기준으로 다중 워크시트로 데이터 분할 하는 것이 매우 유용할 수 있습니다。 이 방법은 데이터를 체계적으로 정리할 뿐만 아니라 가독성을 높이고 데이터 분석을 더욱 용이하게 만듭니다。

제품명과 1 분기 판매 수량 등 여러 항목으로 구성된 대규모 판매 기록이 있다고 가정해 보겠습니다。 목표는 제품명별로 데이터를 개별 워크시트로 분할하여 각 제품의 판매 성과를 개별적으로 분석할 수 있도록 하는 것입니다。

열 값 기준으로 다중 워크시트로 데이터 분할

VBA 코드를 사용하여 열 값 기준으로 데이터 분할을 여러 워크북으로 분할하기

열 값에 따라 데이터를 여러 워크시트로 분할


열 값 기준으로 다중 워크시트로 데이터 분할

일반적으로 먼저 데이터 목록을 정렬한 후 하나씩 다른 새 워크시트에 복사하여 붙여넣을 수 있습니다. 하지만 이는 반복적인 복사 및 붙여넣기 작업으로 인해 많은 인내심이 필요합니다. 이 섹션에서는 Excel 에서 이 작업을 효율적으로 처리하여 시간을 절약하고 오류 가능성을 줄이는 두 가지 간단한 방법을 소개합니다。

VBA 코드를 사용하여 열 값 기준으로 다중 워크시트로 데이터 분할

1. ALT + F11키를 누른 상태로 유지하여Microsoft Visual Basic for Applications창을 엽니다。

2. 삽입(Insert)>모듈(Module)을 클릭하고 모듈 창에 다음 코드를 붙여넣습니다。

Sub Splitdatabycol()
'updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
Dim xWS As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3. 그런 다음F5키를 눌러 코드를 실행합니다。 머리글 행을 선택하라는 프롬프트 상자가 나타나면확인(OK)을 클릭합니다。 스크린샷 참조:
VBA 코드로 헤더 행을 선택하여 데이터를 워크시트로 분할

4. 두 번째 프롬프트 상자에서 선택하세요을(를) 분할 기준하려는 열 데이터를 선택한 후확인(OK)을 클릭합니다。 스크린샷 참조:
VBA 코드로 데이터 범위를 선택하여 데이터를 워크시트로 분할

5. 활성 워크시트의 모든 데이터가 열 값에 따라 여러 워크시트로 분할됩니다。 생성된 워크시트는 셀 분할의 값에 따라 이름이 지정되며 워크북 끝에 배치됩니다。 스크린샷 참조:
VBA 코드로 결과를 얻기 위해 데이터를 워크시트로 분할

 

Kutools for Excel 을 사용하여 열 값 기준으로 다중 워크시트로 데이터 분할

Kutools for Excel는 Excel 환경에 스마트한 기능인데이터 분할을 제공합니다。 데이터를 여러 워크시트로 분할하는 작업이 더 이상 어려운 일이 아닙니다。 직관적인 도구가 선택한 열 값이나 행 수를 기준으로 자동으로 데이터셋을 분할하여 필요한 위치에 정확히 정보를 배치합니다。 스프레드시트를 수동으로 정리하는 번거로운 작업은 이제 그만두고, 더 빠르고 오류 없는 방식으로 데이터를 관리하세요。

참고:이 기능을 사용하려면 먼저 데이터 분할을 다운로드한 후Kutools for Excel해당 기능을 신속하고 쉽게 적용해야 합니다。

Kutools for Excel 을 설치한 후에는Kutools for Excel을 선택하고Kutools 플러스>데이터 분할를 클릭하여다중 워크시트로 데이터 분할대화 상자를 엽니다。

  1. 다음에서열 지정옵션을 선택하고,분할 기준섹션에서 데이터를 분할할 기준이 되는 열 값을 드롭다운 목록에서 선택합니다。
  2. 데이터에 머리글이 포함되어 있고 각 새 분할 워크시트에 머리글을 삽입하려면 다음 옵션을 선택하세요。제목 포함(데이터에 따라 제목 행 수을 지정할 수 있습니다. 예를 들어, 데이터에 머리글이 두 줄 있다면 2 을 입력하세요。)
  3. 그런 다음 다음과 같이 분할 시트 이름을 지정할 수 있습니다。생성된 워크시트의 이름섹션에서 규칙 드롭다운 목록에서 시트 이름 규칙을 지정하고, 시트 이름에접두사(Prefix)또는접미사(Suffix)도 추가할 수 있습니다。
  4. 확인(OK)버튼을 클릭합니다。 스크린샷 참조:
    Kutools로 작업을 설정하여 데이터를 워크시트로 분할

이제 워크시트의 데이터가 새 워크북으로 여러 워크시트로 분할되었습니다。
Kutools로 결과를 얻기 위해 데이터를 워크시트로 분할


VBA 코드를 사용하여 열 값 기준으로 데이터 분할을 여러 워크북으로 분할하기

때로는 데이터를 여러 워크시트로 나누는 것보다 키 열을 기준으로 별도의 워크북으로 분할하는 것이 더 유리할 수도 있습니다。 다음은 VBA 코드를 사용하여 열 지정 값을 기준으로 데이터를 여러 워크북으로 자동 분할하는 단계별 가이드입니다。

1. 다음 키를 누른 상태로 유지합니다:ALT + F11키를 눌러Microsoft Visual Basic for Applications창을 엽니다。

2. 삽입(Insert)>모듈(Module)을 클릭하고모듈 창(Module Window)에 다음 코드를 붙여넣습니다。

Sub SplitDataByColToWorkbooks()
    ' Updateby Extendoffice
    Dim lr As Long
    Dim ws As Worksheet
    Dim vcol, i As Integer
    Dim myarr As Variant
    Dim title As String
    Dim titlerow As Integer
    Dim xTRg As Range
    Dim xVRg As Range
    Dim xWS As Workbook
    Dim savePath As String
    ' Set the directory to save new workbooks
    savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
    Application.DisplayAlerts = False
    Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", Type:=8)
    If TypeName(xTRg) = "Nothing" Then Exit Sub
    Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", Type:=8)
    If TypeName(xVRg) = "Nothing" Then Exit Sub
    vcol = xVRg.Column
    Set ws = xTRg.Worksheet
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = xTRg.Address(False, False)
    titlerow = xTRg.Row
    ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
    myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
    ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
    For i = 2 To UBound(myarr)
        Set xWS = Workbooks.Add
        ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
        ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
        xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
        xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"

        xWS.Close SaveChanges:=False
    Next i
    ws.AutoFilterMode = False
    Application.DisplayAlerts = True
    ws.Activate
End Sub
참고: 위 코드에서 스크립트 내 워크북 분리을 저장할 경로인 파일 경로를 자신의 경로로 변경해야 합니다:savePath = 「C:\Users\AddinsVM001\Desktop\multiple files\」.

3. 그런 다음F5키를 눌러 코드를 실행합니다。 머리글 행을 선택하라는 프롬프트 상자가 나타나면확인(OK)을 클릭합니다。 스크린샷 참조:
VBA 코드로 헤더 행을 선택하여 데이터를 워크북으로 분할

4. 두 번째 프롬프트 상자에서 선택하세요을(를) 분할 기준하려는 열 데이터를 선택한 후확인(OK)을 클릭합니다。 스크린샷 참조:
VBA 코드로 데이터 범위를 선택하여 데이터를 워크북으로 분할

5. 분할 후 활성 워크시트의 모든 데이터가 열 값에 따라 여러 워크북으로 나뉩니다。 모든 워크북 분리은 지정한 폴더에 저장됩니다。 스크린샷 참조:
VBA 코드로 결과를 얻기 위해 데이터를 워크북으로 분할

관련 문서:

  • 다중 워크시트로 데이터 분할 행 수 기준
  • 특정 행 수를 기준으로 대규모 데이터 범위을 여러 Excel 워크시트로 효율적으로 분할하면 데이터 관리가 훨씬 수월해집니다. 예를 들어, 데이터셋을 매 5 행마다 여러 시트로 나누면 데이터를 더 체계적이고 관리하기 쉽게 만들 수 있습니다。 이 가이드에서는 이 작업을 신속하고 쉽게 수행할 수 있는 두 가지 실용적인 방법을 제공합니다。
  • 키 열을 기준으로 두 개 이상의 테이블을 하나로 병합하기
  • 워크북에 세 개의 테이블이 있다고 가정해 보겠습니다。 이제 해당 테이블들을 아래 스크린샷과 같은 결과를 얻기 위해 해당 키 열을 기준으로 하나의 테이블로 병합하려고 합니다。 대부분의 사용자에게는 번거로운 작업일 수 있지만 걱정하지 마십시오。 본 문서에서는 이 문제를 해결할 수 있는 몇 가지 방법을 소개하겠습니다。
  • 구분자 기준으로 텍스트 문자열을 여러 행으로 분할하기
  • 일반적으로 콤마, 마침표, 세미콜론, 슬래시 등 특정 구분자를 사용하여 '텍스트를 열로 나누기' 기능으로 셀 내용을 여러 열로 분할할 수 있습니다. 그러나 때로는 구분된 셀 내용을 여러 행으로 분할하고 아래 스크린샷과 같이 다른 열의 데이터를 반복해야 할 수도 있습니다. Excel 에서 이러한 작업을 처리할 수 있는 좋은 방법이 있을까요? 이 튜토리얼에서는 Excel 에서 이 작업을 완료하는 데 효과적인 몇 가지 방법을 소개합니다。
  • 여러 줄로 구성된 셀 내용을 개별 행/열로 분할하기
  • Alt + Enter 로 구분된 여러 줄의 셀 내용이 있고 이를 개별 행 또는 열로 분할해야 한다면 어떻게 해야 할까요? 이 문서에서는 여러 줄로 구성된 셀 내용을 신속하게 개별 행 또는 열로 분할하는 방법을 배우게 됩니다。

최고의 Office 생산성 도구

🤖KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행   |  코드 생성|  사용자 지정 수식 생성  |  데이터 분석 및 차트 생성|  향상된 함수 호출
인기 기능:찾기, 강조 표시 또는 중복 표시   |  빈 행 삭제   |  데이터 손실 없이 열 결합 또는 셀 제거   |  공식을 사용하지 않는 반올림...
슈퍼 LOOKUP:다중 조건 VLookup  |  다중 값 VLookup  |   여러 시트에서 VLookup   |   퍼지 매치....
고급 드롭다운 목록:드롭다운 목록 빠르게 생성   |  종속형 드롭다운 목록   |  다중 선택 드롭다운 목록....
열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교...
주요 기능:그리드 포커스   |  디자인 보기   |향상된 수식 표시줄   | 워크북 및 시트 관리자   |  자원 라이브러리(자동 텍스트)|  날짜 선택기   |  워크시트 병합  |  암호화/셀 해독   | 목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。
상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)|   50+차트유형(간트 차트, ...)|   40+ 실용적인수식(생일을 기준으로 나이 계산, ...)|   19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)|   12 변환도구(단어로 변환하기,환율 변환, ...)|   7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능
Kutools 를 선호하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및 40+개 이상의 언어를 지원합니다!

Kutools for Excel 로 Excel 역량을 한 단계 업그레이드하고 전례 없는 효율성을 경험하세요。Kutools for Excel 는 생산성과 저장 시간을 향상시키는 300 개 이상의 고급 기능을 제공합니다。가장 필요한 기능을 지금 바로 확인하세요。。。


Office Tab 가 Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다

  • Word, Excel, PowerPoint 에서 탭 기반 편집 및 읽기 기능을 활성화합니다, Publisher, Access, Visio 및 Project 에서도 사용 가능합니다。
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성할 수 있습니다。
  • 50% 만큼 생산성을 높이고 매일 수백 번의 마우스 클릭을 줄여줍니다!

모든 Kutools 애드인。 하나의 설치 프로그램

Kutools for Office스위트 번들은 Excel, Word, Outlook 및 PowerPoint 용 애드인과 Office Tab Pro 를 포함하며, 다양한 Office 앱을 사용하는 팀에 이상적입니다。

ExcelWordOutlookTabsPowerPoint
  • 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
  • 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
  • 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
  • 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
  • 최고의 가성비— 개별 애드인 구매 대비 절약