브리의 성장기

[업무TIP] 매크로 도전기 :: 특정 키워드를 기반으로 엑셀 시트 나누는 법 본문

똑똑하게 일하기

[업무TIP] 매크로 도전기 :: 특정 키워드를 기반으로 엑셀 시트 나누는 법

브리(BRIE) 2023. 2. 14. 14:35
728x90

상황 : 매일 해야 하는 정기 업무가 생겼다 (생 노가다)

 

상황을 좀 더 상세히 풀어보자면,

 1. '업체명' 기준으로 엑셀 데이터를 분할 해야 한다. 

 2. 데이터는 각각의 시트로 분할하면 된다.

 3. 1개 엑셀 파일 당 업체는 10개 내지 20개 이다.

 4. 매일 5개 이상의 엑셀 파일 분할 작업을 실시해야 한다.

즉, 매일 매일 최대 100개 의 업체별 시트를 생성해야 한다는 것?

 

수작업으로 진행할 수도 있겠지만, 그렇게 되면 문제가 생긴다.

 1. 너무 많은 업무 시간을 투자해야 한다. 대략 일일 30분 ~ 1시간 정도. 너무나도 아까운 시간이다.

 2. 한 개 시트에 두 개 업체가 포함되는 등 정확도가 떨어질 수 있다.

 

이 문제를 해결하기 위해, 특정 키워드(=업체명)을 토대로 엑셀 시트를 나눠주는 매크로를 만들어 보기로 했다. 

 

Sub 시트분리()
    Dim 업체명 As String
    Dim i As Integer
    Application.ScreenUpdating = False

    For i = 2 To N
    업체명 = Sheets("업체명").Range("A" & i)
    
    Sheets("전체").Range("$B$1").CurrentRegion.AutoFilter Field:=1, Criteria1:=업체명
    Sheets("전체").Range("$B$1").CurrentRegion.Copy
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Paste
    ActiveSheet.Name = 업체명
    Columns("C:C").ColumnWidth = 80
    Columns("A:B").EntireColumn.AutoFit
    Selection.ColumnWidth = 14.25
    Range("A1").Select
    
    Next
    
    Sheets("처리결과").Range("$A$1").CurrentRegion.AutoFilter
    Application.ScreenUpdating = True
    MsgBox "작업완료"
    
End Sub

 

매크로를 실행하기 위해서는 사전 작업이 필요하다.

 1. 전체 데이터가 포함되어 있는 시트명을 [전체] 로 변경한다.

 2. 시트 하나를 추가하고 시트명을 [업체명] 으로 변경한다.

 3. [업체명] 시트 A열 1행에 "업체명" 이라고 입력한다.

 4. [업체명] 시트 A열 2행부터 업체명 리스트를 일열로 나열한다.

 

사전 작업이 끝난 모습. 실제로는 업체명 훨씬 많고, 데이터 양도 어마어마 하다.

 

자 이렇게 세팅 되었다면, 위에 첨부한 '시트분리' 매크로를 실행해주면 된다.

 

실행과 동시에 [업체명] 시트 우측에는 실제 업체명 - 브리, SKT, LG, KT - 를 이름으로 하는 시트가 생성되고

그 시트 내에서 업체명 기반의 데이터만 필터링 되어 있음을 확인할 수 있다.

 

사실 정기업무에 투자하는 시간을 절약하고자 만들었는데, 생각보다 대량의 데이터를 특정 키워드 기반으로 나누어야 할 일이 많다.

지금 업무에 요긴하게 재활용 하고 있는 매크로라 모두에게 공유해본다. 😊

(매크로에서 열 / 행 만 유연하게 수정해가며 사용하시길!)

 

 

728x90
Comments