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

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

대용량 마이크로소프트 엑셀 데이터를 다루다 보면 값을 작은 것부터 큰 것 순으로 정렬해야 하는 경우가 자주 생깁니다. VBA 매크로를 활용하면 이러한 정렬 작업을 아주 간편하게 자동화할 수 있습니다. 이번 글에서는 VBA 코드를 사용해 데이터를 오름차순(작은 값 → 큰 값)으로 정렬하는 세 가지 빠르고 효과적인 방법을 그림과 함께 자세히 알아보겠습니다.

VBA 오토필터 오름차순 정렬 핵심 코드 미리 보기

Sub Autofilter_Sort_Smallest_to_Largest()
With ActiveSheet.Sort
.SortFields.Add Key:=Range("D4"), Order:=xlAscending
.SetRange Range("B4:E16")
.Header = xlYes
.Apply
End With
End Sub

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

엑셀 VBA 오토필터로 오름차순 정렬하는 3가지 방법

예시로 아르마니(Armani) 그룹의 여러 영업 담당자 정보가 담긴 데이터 세트를 사용하겠습니다. B열에는 영업 담당자 이름, C열에는 제품 유형, D열에는 주문 수량, E열에는 배송 완료 수량이 각각 입력되어 있습니다. 이 데이터 세트를 VBA 코드로 작은 값부터 큰 값 순으로 정렬해 보겠습니다. 아래는 오늘 실습에 사용할 데이터 세트의 전체 모습입니다.

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

1. VBA 오토필터에서 오름차순(xlAscending)으로 정렬하기

먼저 간단한 VBA 코드를 사용해 데이터를 오름차순으로 정렬하는 가장 기본적인 방법을 살펴보겠습니다. 여기서는 제품 주문 수량(D열)을 기준으로 데이터를 오름차순으로 정렬해 보겠습니다.

1단계:

  • 먼저 모듈을 열어야 합니다. 리본 메뉴의 개발 도구(Developer) 탭에서 아래 경로로 이동하세요.

개발 도구 → Visual Basic

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

  • Visual Basic을 클릭하면 'Microsoft Visual Basic for Applications' 창이 즉시 열립니다. 이 창에서 VBA 코드를 입력할 모듈을 삽입합니다. 메뉴에서 아래 항목을 선택하세요.

삽입(Insert) → 모듈(Module)

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

2단계:

  • 새 모듈 창이 열리면 아래 VBA 코드를 입력합니다.
Sub Autofilter_Sort_Smallest_to_Largest()
With ActiveSheet.Sort
.SortFields.Add Key:=Range("D4"), Order:=xlAscending
.SetRange Range("B4:E16")
.Header = xlYes
.Apply
End With
End Sub

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

  • 이제 VBA 코드를 실행합니다. 메뉴에서 아래 항목을 선택하세요.

실행(Run) → Sub/UserForm 실행(Run Sub/UserForm)

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

  • 코드 실행이 완료되면 아래 스크린샷처럼 데이터가 작은 값부터 큰 값 순으로 정렬된 것을 확인할 수 있습니다.

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

함께 읽기: 엑셀 VBA로 같은 필드에 여러 조건을 적용해 오토필터 사용하기 (4가지 방법)

2. 머리글 행을 포함해 여러 열을 기준으로 오름차순 정렬하기

두 번째 방법은 머리글 행을 포함한 여러 열을 동시에 오름차순으로 정렬하는 방법입니다. 여기서는 영업 담당자 이름(B열)을 1차 기준으로 하고, 같은 이름 내에서 주문 수량(D열)을 2차 기준으로 정렬해 보겠습니다.

1단계:

  • 먼저 방법 1과 동일하게 새 모듈을 삽입한 뒤 아래 VBA 코드를 입력합니다.
Sub Sort_Multiple_Columns()
With ActiveSheet.Sort
.SortFields.Add Key:=Range("B4"), Order:=xlAscending
.SortFields.Add Key:=Range("D4"), Order:=xlAscending
.SetRange Range("B4:E16")
.Header = xlYes
.Apply
End With
End Sub

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

  • 코드를 입력했다면 VBA 코드를 실행합니다.

실행(Run) → Sub/UserForm 실행(Run Sub/UserForm)

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

2단계:

  • 코드 실행이 끝나면 아래 스크린샷처럼 영업 담당자 이름을 1차 기준으로, 주문 수량을 2차 기준으로 작은 값부터 큰 값 순으로 정렬된 결과를 확인할 수 있습니다.

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

함께 읽기: [해결 방법] Range 클래스의 AutoFilter 메서드 오류 수정하기 (5가지 해결책)

3. 워크시트 이름을 지정해 VBA 오토필터로 오름차순 정렬하기

마지막 방법은 워크시트 이름을 직접 지정하여 해당 시트의 데이터를 오름차순으로 정렬하는 방법입니다. 여기서는 배송 완료 수량(E열)을 기준으로 정렬하겠습니다. 간단하면서도 작업 시간을 크게 절약할 수 있는 방법입니다.

1단계:

  • 먼저 방법 1과 마찬가지로 새 모듈을 삽입하고 아래 VBA 코드를 입력합니다.
Sub Sort_Smallest_to_Largest()
Rows("4:16").Select
ActiveWorkbook.Worksheets("Smallest to Largest").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Smallest to Largest").Sort.SortFields.Add Key:=Range("E4:E16") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Smallest to Largest").Sort
.SetRange Range("B4:E16")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

  • 코드를 입력한 후 VBA 코드를 실행합니다.

실행(Run) → Sub/UserForm 실행(Run Sub/UserForm)

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

2단계:

  • 실행이 완료되면 아래 스크린샷처럼 지정한 워크시트에서 배송 수량 기준으로 오름차순 정렬된 결과를 확인할 수 있습니다.

엑셀 VBA 오토필터로 작은 값부터 큰 값 순으로 정렬하는 3가지 방법

함께 읽기: 엑셀 VBA로 오토필터 적용 후 보이는 행만 복사하는 방법

알아두면 좋은 팁

👉 Alt + F11 키를 동시에 누르면 Microsoft Visual Basic for Applications 창을 바로 열 수 있습니다.

👉 리본 메뉴에 개발 도구 탭이 보이지 않는다면 직접 활성화할 수 있습니다. 아래 경로로 이동하세요.

파일(File) → 옵션(Options) → 리본 사용자 지정(Customize Ribbon)

마무리

지금까지 VBA 코드로 데이터를 작은 값부터 큰 값 순으로 정렬하는 세 가지 방법을 알아보았습니다. 소개해 드린 방법들을 실무 엑셀 작업에 활용하면 반복적인 정렬 작업을 자동화하고 생산성을 한층 높일 수 있을 것입니다. 궁금한 점이나 추가 문의 사항이 있다면 언제든지 댓글로 남겨주세요.

함께 보면 좋은 글

  • 엑셀 VBA로 오토필터 켜짐 여부 확인하기 (4가지 쉬운 방법)
  • 엑셀 VBA로 특정 값과 같지 않은 항목만 오토필터로 걸러내는 방법
  • 엑셀 VBA: 오토필터가 설정되어 있으면 제거하기 (7가지 방법)