Excel에서 각 행에 대해 새 시트를 만드는 방법은 무엇입니까?
데이터 관리 또는 보고서 작성 작업 중에는 때때로 테이블의 각 레코드를 개별 워크시트로 분리해야 할 수 있습니다. 예를 들어, Excel에서 학생 정보 목록을 관리할 경우 각 행이 다른 학생의 정보를 나타낸다면, 모든 학생에 대한 별도의 시트를 생성하여 각각의 특정 데이터를 포함하고 싶을 수 있습니다. 또는 행의 내용에 관계없이 모든 행을 새로운 워크시트로 분리하여 하나의 워크시트에 하나의 행만 있도록 하고 싶을 수도 있습니다. 수작업으로 새 시트를 만들고 데이터를 복사하는 것은 시간이 많이 걸리고 오류가 발생하기 쉬우며, 특히 대규모 데이터 세트를 다룰 때 더욱 그렇습니다. 이 과정을 자동화하면 상당한 시간을 절약할 수 있고 실수 위험을 줄일 수 있습니다. 이 가이드에서는 Excel에서 각 행에 대해 새 시트를 만드는 두 가지 실용적인 솔루션을 안내하며, 각 방법의 장단점을 설명하여 사용자의 상황에 맞는 최적의 접근 방식을 선택할 수 있도록 도와드립니다.
VBA 코드를 사용하여 각 행에 대해 새 시트 만들기
Kutools for Excel의 Split Data 유틸리티를 사용하여 각 행에 대해 새 시트 만들기
VBA 코드를 사용하여 각 행에 대해 새 시트 만들기
VBA(Visual Basic for Applications)를 사용하는 것은 지루하고 반복적인 Excel 작업을 자동화하는 효과적인 방법입니다. VBA를 사용하면 열(예: 학생 이름) 기준으로 행을 그룹화하거나, 내용에 관계없이 각 행에 대해 새 시트를 신속하게 생성할 수 있습니다. 이 접근 방식은 VBA 편집기에 익숙하고 고도로 사용자 정의가 가능한 솔루션을 선호하는 사용자에게 적합합니다. 하지만 코드를 수정하고 실행해야 하므로 VBA 경험이 없거나 환경에서 매크로 실행 권한이 없는 사용자에게는 적합하지 않을 수 있습니다.
1. "Alt" + "F11"을 눌러 Microsoft Visual Basic for Applications 창을 열어 Excel 작업을 자동화하기 위한 VBA 코드에 접근합니다.
2. Microsoft Visual Basic for Applications 창에서 Insert > Module을 클릭하여 새 코드 모듈을 추가합니다. 그런 다음 다음 코드를 Module 창에 복사하여 붙여넣습니다.
VBA 코드: 열 기반으로 각 행에 대해 새 시트 만들기
Sub parse_data()
'Update by Extendoffice 2018/3/2
Dim xRCount As Long
Dim xSht As Worksheet
Dim xNSht As Worksheet
Dim I As Long
Dim xTRrow As Integer
Dim xCol As New Collection
Dim xTitle As String
Dim xSUpdate As Boolean
Set xSht = ActiveSheet
On Error Resume Next
xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
xTitle = "A1:C1"
xTRrow = xSht.Range(xTitle).Cells(1).Row
For I = 2 To xRCount
Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
Next
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCol.Count
Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
Set xNSht = Nothing
Set xNSht = Worksheets(CStr(xCol.Item(I)))
If xNSht Is Nothing Then
Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
xNSht.Name = CStr(xCol.Item(I))
Else
xNSht.Move , Sheets(Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Next
xSht.AutoFilterMode = False
xSht.Activate
Application.ScreenUpdating = xSUpdate
End Sub
매개변수 설명 및 사용 팁:
- A1:C1은 데이터 테이블의 헤더 범위입니다. 필요에 따라 실제 데이터 헤더 영역과 일치하도록 이 참조를 조정하십시오.
- 코드는 지정된 열(기본적으로 A열)에서 고유한 값을 수집합니다. 각 고유 값은 해당 행을 포함하는 자체 워크시트를 갖게 됩니다.
- 테이블이 더 넓거나 다른 행에서 시작하는 경우
xTitle
및 셀 참조를 적절히 업데이트하십시오. - 워크시트에 다른 시트를 참조하는 수식이 있는 경우 분할 후 참조를 확인하십시오.
3. F5 키를 누르거나 Run을 클릭하여 코드를 실행합니다. 현재 통합 문서 내의 모든 기존 시트 이후에 새 워크시트가 생성되며, 각 시트는 선택된 고유 열 값에 따라 명명됩니다. 샘플 결과는 아래 스크린샷을 참조하십시오.
열 내용에 관계없이 각 행을 자체 워크시트로 분할하려면 다음 대체 VBA 코드를 사용할 수 있습니다. 이 방법은 열 조건을 지정할 필요가 없습니다.
VBA 코드: 각 행에 대해 직접 새 시트 만들기
Sub RowToSheet()
Dim xRow As Long
Dim I As Long
With ActiveSheet
xRow = .Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To xRow
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
.Rows(I).Copy Sheets("Row " & I).Range("A1")
Next I
End With
End Sub
이 코드를 모듈에서 실행한 후, 활성 워크시트의 각 행(헤더 행 포함)이 새로 생성된 워크시트에 복사됩니다. 헤더 행도 복제된다는 점에 유의하십시오. 이를 방지하려면 이후에 출력된 시트를 수동으로 삭제하거나 조정해야 할 수 있습니다.
문제 해결 및 실용적인 팁:
- "Subscript out of range" 같은 오류가 발생할 경우, 시트 이름에 잘못된 문자나 중복된 이름이 없는지 확인하십시오.
- 대규모 데이터 세트는 많은 수의 시트를 생성할 수 있으며, 이는 Excel 성능 저하나 탐색 어려움을 초래할 수 있습니다. 매우 큰 테이블에서 행 단위로 분할하는 것이 필요한지 고려하십시오.
- VBA 코드 실행 전 항상 데이터 백업을 유지하여 의도치 않은 데이터 손실을 방지하십시오.
장점: 무료; 높은 사용자 정의 가능.
단점: VBA/매크로 활성화 및 VBA 편집기 친숙함 필요; 복잡하거나 비정상적인 데이터로 인해 코드 오류 가능성 존재.
적합 대상: 스크립팅 유연성이 필요한 사용자 및 일회성 또는 비정기적인 작업 처리 시.
Kutools for Excel의 Split Data 유틸리티를 사용하여 각 행에 대해 새 시트 만들기
코드 작성을 원하지 않고 간단하고 사용자 친화적인 접근 방식을 선호한다면 Kutools for Excel의 Split Data 유틸리티를 추천합니다. 이 기능은 몇 번의 클릭만으로 데이터를 새 워크시트로 분할하여 워크시트 관리 프로세스를 크게 단순화합니다. Kutools는 특히 대규모 복잡한 테이블을 정기적으로 처리하거나 수동 코딩보다 그래픽 인터페이스를 선호하는 사용자에게 유용합니다. 참고로 Kutools는 Excel 추가 기능이며 사전 설치가 필요합니다.
1. 분할하려는 데이터가 포함된 테이블을 선택합니다. 그런 다음 Kutools Plus 탭을 클릭하고 Split Data를 선택합니다. 명확히 하기 위해 아래 스크린샷을 참조하십시오.
2. Split Data into Multiple Worksheets 대화 상자에서 분할 요구사항에 따라 적절한 설정을 선택합니다.
A. 열 값 기반으로 새 시트를 만들기:
B. 각 행에 대해 직접 새 시트를 만들기:
실행 후, 선택한 설정에 따라 채워진 모든 새 워크시트를 포함하는 새 통합 문서가 생성됩니다.
열 값 기반으로 각 행에 대해 새 시트 만들기:
열 값에 관계없이 각 행에 대해 새 시트 만들기:
주의사항 및 실용적인 팁:
- Split Data 유틸리티 사용 전, 테이블에 빈 행이 없는지 확인하십시오. 이러한 행은 빈 시트를 생성할 수 있습니다.
- 시트 명명 규칙을 검토하여 중복되거나 잘못된 워크시트 이름을 방지하십시오. 이름 충돌이 발생하면 Kutools가 자동으로 조정합니다.
- 테이블이 매우 크면 이 프로세스로 인해 많은 수의 워크시트가 생성될 수 있으므로 진행하기 전에 이를 고려하십시오.
장점: 사용이 간편하고 코딩이 필요 없음; 배치 처리 및 빈번한 작업에 적합.
단점: Kutools 추가 기능 설치가 필요함.
적합 대상: 모든 수준의 Excel 사용자, 특히 반복적인 데이터 분할 작업을 처리하는 사용자.
Kutools for Excel - 필수적인 300개 이상의 도구로 Excel을 강화하세요. 영구적으로 무료인 AI 기능을 활용하세요! 지금 바로 구매하기
데모: Kutools for Excel의 Split Data 유틸리티를 사용하여 각 행에 대해 새 시트 만들기
최고의 오피스 생산성 도구
🤖 | Kutools AI Aide: 지능형 실행을 기반으로 데이터 분석 혁신 지능형 실행 | 코드 생성 | 사용자 정의 수식 생성 | 데이터 분석 및 차트 생성 | Kutools Functions 호출… |
인기 기능: 중복 찾기, 강조 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 병합 | 반올림... | |
슈퍼 LOOKUP: 다중 조건 VLookup | 다중 값 VLookup | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 드롭다운 목록 신속 생성 | 의존형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
열 매니저: 지정 개수 열 추가 | 열 이동 | 숨겨진 열 표시 상태 전환 | 범위 및 열 비교 ... | |
주요 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 & 시트 관리 | 자동 텍스트 라이브러리 | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록별 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵게/이탤릭/취소선 필터...)... | |
Top15 도구 세트: 12개 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...) | 50+ 차트 유형(간트 차트, ...) | 40+ 실용 수식(생일을 기반으로 나이 계산, ...) | 19개 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...) | 12개 변환 도구(단어로 변환하기, 통화 변환, ...) | 7개 병합 & 분할 도구(고급 행 병합, 셀 분할, ...) | ... 그리고 그 외 |
Kutools for Excel로 Excel 실력을 한 단계 업그레이드하고, 그 어떤 때보다 뛰어난 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능을 제공하여 생산성을 높이고 저장 시간을 줄여줍니다. 가장 필요한 기능을 지금 바로 확인하세요...
Office Tab이 오피스에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다
- Word, Excel, PowerPoint에서 탭 기반 편집과 읽기를 활성화합니다.
- 여러 문서를 새 창이 아닌 동일한 창의 새 탭에서 열고 생성하세요.
- 생산성이50% 향상되며, 매일 수백 번의 마우스 클릭을 줄일 수 있습니다!