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

엑셀 고급 필터로 다른 시트에 데이터 복사하는 2가지 방법

엑셀의 고급 필터(Advanced Filter) 기능은 여러 조건을 만족하는 데이터를 추출할 때 유용하게 활용됩니다. 단순히 복사-붙여넣기로 데이터를 옮기는 것보다, 고급 필터를 사용하면 원하는 조건에 맞는 데이터만 골라서 다른 시트로 한 번에 복사할 수 있어 작업 효율이 크게 향상됩니다.

이 글에서는 하나의 예제 데이터 세트를 사용하여 두 가지 방법을 소개합니다. 첫 번째는 [데이터] 탭의 [고급] 옵션을 활용하는 방법이고, 두 번째는 VBA 코드를 사용해 고급 필터를 자동으로 실행하는 방법입니다.

방법 1. 고급 필터 기능으로 다른 시트에 데이터 복사하기

가장 먼저 리본 메뉴의 [고급] 옵션을 이용해 조건에 맞는 데이터를 다른 시트로 복사해 보겠습니다. [고급] 옵션은 [데이터] 탭의 [정렬 및 필터] 그룹에서 찾을 수 있습니다.

예제 데이터에는 영업사원별 성(Last Name), 매출액(Sales Amount), 도시(City) 정보가 들어 있습니다. 우리의 목표는 성이 SmithJones인 영업사원의 데이터만 'Copy Sheet'라는 시트로 복사하는 것입니다.

실행 단계:

  • 데이터를 붙여넣을 시트인 'Copy Sheet'로 이동합니다.
  • [데이터] 탭 → [정렬 및 필터] 그룹에서 [고급]을 클릭합니다.
  • [고급 필터] 대화 상자가 나타나면 [다른 위치로 복사] 옵션을 선택합니다.
  • [목록 범위] 입력 상자를 클릭한 뒤, 원본 데이터가 있는 시트('Actual Sheet')로 이동하여 범위 (B4:D15)를 선택합니다.

선택 후 목록 범위 입력 상자에는 아래와 같은 값이 표시됩니다.

목록 범위: 'Actual Sheet'!$B$4:$D$15

  • 이어서 대화 상자에 다음 값을 입력합니다.
    조건 범위: 'Actual Sheet'!$F$9:$F$11
    복사할 위치: 'Copy Sheet'!$B$4
  • [확인]을 누르면 완료됩니다.

결과적으로 'Actual Sheet'에서 조건(성이 Smith 또는 Jones)에 해당하는 행들이 모두 'Copy Sheet'로 복사된 것을 확인할 수 있습니다.

방법 2. VBA 코드로 고급 필터 적용하기

두 번째 방법은 VBA 매크로를 활용하는 것입니다. 앞선 방법과 동일한 작업을 수행하지만, [데이터] 탭의 메뉴를 직접 클릭하는 대신 VBA 코드로 고급 필터 기능을 실행합니다. 반복적인 작업을 자동화해야 할 때 특히 유용합니다.

실행 단계:

  • 데이터를 복사할 시트 'Copy Sheet-2'를 선택합니다.
  • 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 [코드 보기(View Code)]를 선택합니다.
  • 빈 VBA 모듈이 열리면 아래 코드를 붙여넣습니다.
Sub Advance_Filter_to_Copy_to_Another_Sheet()
Dim Str As String
Dim Address As String
Dim Rg As Range
Dim CRg As Range
Dim SRg As Range
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set Rg = Application.InputBox("Please select the filter range:", "Copy to Another Sheet", xAddress, , , , , 8)
If Rg Is Nothing Then Exit Sub
Set CRg = Application.InputBox("Please select the criteria range:", "Copy to Another Sheet", "", , , , , 8)
If CRg Is Nothing Then Exit Sub
Set SRg = Application.InputBox("Please select the output range:", "Copy to Another Sheet", "", , , , , 8)
If SRg Is Nothing Then Exit Sub
Rg.AdvancedFilter xlFilterCopy, CRg, SRg, False
SRg.Worksheet.Activate
SRg.Worksheet.Columns.AutoFit
End Sub
  • F5 키를 누르거나 [실행(Run)] 버튼을 클릭해 코드를 실행합니다.
  • 'Copy to Another Sheet'라는 제목의 입력 대화 상자가 나타납니다.
  • 첫 번째 입력 상자에서 필터링할 원본 범위를 지정합니다. 'VBA' 시트로 이동해 범위 (B4:D15)를 선택하고 [확인]을 누릅니다.
  • 다음 대화 상자에서는 조건 범위를 지정합니다. 'VBA' 시트의 범위 (F9:F11)를 선택한 뒤 [확인]을 클릭합니다.
  • 마지막 대화 상자에서는 결과를 출력할 위치를 지정합니다. 데이터를 복사할 시트의 셀 B4를 선택하고 [확인]을 누릅니다.

모든 단계가 끝나면 조건에 맞는 행들이 지정한 시트로 한꺼번에 복사되며, 열 너비까지 자동으로 맞춰집니다.

마무리

지금까지 엑셀에서 고급 필터를 활용해 조건에 맞는 데이터를 다른 시트로 복사하는 두 가지 방법을 살펴보았습니다. 리본 메뉴를 사용하는 방법은 간단하고 직관적이며, VBA 코드 방식은 반복 작업을 자동화하는 데 강력합니다. 첨부된 연습 파일을 내려받아 직접 따라 해보시면 실력 향상에 큰 도움이 될 것입니다. 궁금한 점이 있다면 댓글로 남겨주세요. 빠르게 답변드리겠습니다.

함께 읽으면 좋은 글

  • 엑셀 고급 필터 다중 조건 활용 예제 15가지
  • 동적 고급 필터 구현하기 (VBA & 매크로)
  • VBA에서 고급 필터 사용하는 단계별 가이드
  • 조건 범위를 활용한 고급 필터 응용 18가지
  • 엑셀 고급 필터가 작동하지 않을 때 원인과 해결책