쿠키는 우리의 서비스를 제공 도움이됩니다. 우리의 서비스를 사용하면 쿠키의 우리의 사용에 동의합니다.
팁 : 다른 언어는 Google 번역입니다. 방문하실 수 있습니다. English 이 링크의 버전.
로그인
x
or
x
x
등록하기
x

or

Excel의 열을 기반으로 여러 워크 시트로 데이터를 분할하는 방법은 무엇입니까?

거대한 데이터 행이있는 워크 시트가 있고 이제는 데이터를 여러 워크 시트로 분할해야합니다. 이름 열 (다음 스크린 샷 참조)을 입력하고 이름을 임의로 입력합니다. 어쩌면 당신은 먼저 그들을 정렬 할 수 있습니다 다음 복사 및 다른 새로운 워크 시트에 하나씩 그들을 붙여 넣습니다. 하지만 이렇게하면 반복해서 복사하여 붙여 넣기 위해 인내심을 가져야합니다. 오늘은이 작업을 해결하기위한 몇 가지 빠른 트릭에 대해 이야기하겠습니다.

1 열로 데이터 분할

VBA 코드가있는 열을 기반으로 여러 워크 시트로 데이터 분할

Excel 용 Kutools로 열 기반의 여러 워크 시트로 데이터 분할


워크 시트의 특정 열 또는 행 수를 기반으로 데이터를 여러 워크 시트로 분할합니다.

특정 열 데이터 또는 행 수를 기반으로 대형 워크 시트를 여러 시트로 분할하려는 경우 Excel 용 Kutools's 데이터 분할 기능을 사용하면이 작업을 빠르고 쉽게 해결할 수 있습니다.

6 열로 데이터 분할

Excel 용 Kutools: 200 이상의 편리한 Excel 추가 기능으로 60 일 동안 아무런 제한없이 시도 할 수 있습니다. 지금 무료 평가판 다운로드 및 다운로드!


VBA 코드가있는 열을 기반으로 여러 워크 시트로 데이터 분할


열 값을 기반으로 데이터를 신속하고 자동으로 분리하려는 경우 다음 VBA 코드를 사용하는 것이 좋습니다. 다음과 같이하십시오 :

1. 누르고있어. ALT + F11 키를 눌러 응용 프로그램 용 Microsoft Visual Basic 창.

2. 딸깍 하는 소리 끼워 넣다 > 모듈다음 코드를 모듈 창에 붙여 넣습니다.

Sub Splitdatabycol()
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
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
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").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 키를 눌러 코드를 실행하면 헤더 행을 선택하라는 메시지 상자가 나타납니다 (스크린 샷 참조).

7 열로 데이터 분할

4. 그런 다음 OK 버튼을 클릭하고 두 번째 프롬프트 상자에서 분할하려는 열 데이터를 선택하십시오. 스크린 샷을 참조하십시오.

8 열로 데이터 분할

5. 그런 다음 OK활성 워크 시트의 모든 데이터는 열 값에 의해 여러 워크 시트로 분할됩니다. 그리고 분할 워크 시트는 분할 셀 이름으로 명명됩니다. 스크린 샷보기 :

2 열로 데이터 분할

주의 사항: 분할 워크 시트는 마스터 워크 시트가있는 통합 문서의 끝에 배치됩니다.


Excel 용 Kutools로 열 기반의 여러 워크 시트로 데이터 분할

엑셀 초급자로서,이 긴 VBA 코드는 다소 어렵습니다. 우리 대부분은 코드를 우리의 필요에 맞게 수정하는 방법조차 모르고 있습니다.

여기에서는 다기능 도구를 소개하겠습니다.Excel 용 Kutools데이터 분할 유틸리티는 열을 기반으로 여러 워크 시트로 데이터를 분할하는 데 도움이 될뿐만 아니라 행 수로 데이터를 분할 할 수도 있습니다.

Excel 용 Kutools : 300 이상의 편리한 Excel 추가 기능으로 60 일 동안 아무런 제한없이 시도 할 수 있습니다..

설치 한 경우 Excel 용 Kutools, 다음과 같이하십시오 :

1. 분할 할 데이터 범위를 선택하십시오.

2. 딸깍 하는 소리 Kutools 기타 > 워크 시트 > 데이터 분할, 스크린 샷보기 :

3 열로 데이터 분할

3. 에서 여러 워크 시트로 데이터 분할 대화 상자에서 다음을 수행해야합니다.

1). 고르다 특정 항목 에서 옵션 분할 기준 섹션을 선택하고 드롭 다운 목록을 기반으로 데이터를 분할 할 열 값을 선택하십시오. (데이터에 헤더가 있고 각 새 분할 워크 시트에 삽입하려는 경우 확인하십시오. 내 데이터에 헤더가 있습니다. 선택권.)

2). 그런 다음 분할 워크 시트 이름을 지정할 수 있습니다. 새 워크 시트 이름 섹션에서 워크 시트 이름 규칙을 지정하십시오. 규칙 드롭 다운 목록에서 접두사 or 접미사 시트 이름도 마찬가지입니다.

3). 클릭 OK 단추. 스크린 샷보기 :

4 열로 데이터 분할

4. 이제 데이터가 새 통합 문서의 여러 워크 시트로 분할됩니다.

5 열로 데이터 분할

Click for Kutools for Excel 및 무료 평가판을 다운로드하십시오!


Excel 용 Kutools로 열 기반의 여러 워크 시트로 데이터 분할

Excel 용 Kutools 300 이상의 편리한 Excel 도구가 포함되어 있습니다. 60 일 동안 아무런 제한없이 시도해보십시오. 무료 평가판을 지금 다운로드하십시오!


관련 기사 :

행을 기준으로 여러 워크 시트로 데이터를 분할하는 방법은 무엇입니까?



권장 생산성 도구

사무실 탭

금색 star1 Chrome, Firefox 및 새 Internet Explorer와 마찬가지로 Excel 및 기타 Office 소프트웨어에 편리한 탭을 가져옵니다.

Excel 용 Kutools

금색 star1 놀랄 만한! 5 분 동안 생산성을 높입니다. 매일 2 시간을 절약 할 수있는 특별한 기술이 필요하지 않습니다!

금색 star1 300 Excel의 새로운 기능, Excel을 훨씬 쉽고 강력하게 만듭니다 :

  • 데이터 손실없이 셀 / 행 / 열 병합.
  • 여러 시트 및 통합 문서 결합 및 통합.
  • 범위 비교, 여러 범위 복사, 날짜, 단위 및 통화 변환 텍스트 변환.
  • 색상, 페이징 부분합, 고급 정렬 및 수퍼 필터,
  • 추가 선택 / 삽입 / 삭제 / 텍스트 / 형식 / 링크 / 주석 / 통합 문서 / 워크 시트 도구 ...

Kutools for Excel의 스크린 샷

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Rudi Miller · 5 days ago
    Sub parse_data()
    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
    vcol = 1
    Set ws = Sheets("Sheet1")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:C1"
    titlerow = ws.Range(title).Cells(1).Row
    icol = ws.Columns.Count
    ws.Cells(1, icol) = "Unique"
    For i = 2 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
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
    Else
    Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
    End If
    ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
    Sheets(myarr(i) & "").Columns.AutoFit
    Next
    ws.AutoFilterMode = False
    ws.Activate
    End Sub
  • To post as a guest, your comment is unpublished.
    Jason · 1 months ago
    This formula is great, works perfectly for me.
    I want to split out data based on a location, which is in column 1. Which this does.
    However, is it possible to also split out based on column 2, for example. Built and Not Built. So a secondary condition also?
  • To post as a guest, your comment is unpublished.
    jose · 1 months ago
    can someone help please im using this but i keep getting to many columns. i have to keep deleting rows every time i use this.

    This is what im using


    Sub parse_data()
    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
    vcol = 1
    Set ws = Sheets("sheet1")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:AN1"
    titlerow = ws.Range(title).Cells(1).Row
    icol = ws.Columns.Count
    ws.Cells(1, icol) = "Unique"
    For i = 2 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
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
    Else
    Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
    End If
    ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
    Sheets(myarr(i) & "").Columns.AutoFit
    Next
    ws.AutoFilterMode = False
    ws.Activate
    End Sub
  • To post as a guest, your comment is unpublished.
    avinash · 1 months ago
    Thanks for VBA, it works great. In addition to that question, I have column which is dependent. So when i select some value my column values get changed hence I need vba solution to replace earlier split worksheet to replace with new value of columns. Can anyone help me out.?

    Thanks in advance
  • To post as a guest, your comment is unpublished.
    JP Tontegode · 1 months ago
    Is there a way to have the macro create a separate spreadsheet for each new tab instead of just adding a tab into the current worksheet? Thanks!