오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 고급필터 자동화 매크로 + 실전예제

1. 엑셀 고급필터 매크로 기초

엑셀 고급필터란 무엇인가요_R

이번 강의에서는 매크로 녹화기능을 사용하여 매크로 1줄로 사용가능한 고급필터 매크로 기초 사용법을 알아봅니다.

.
엑셀 고급필터 매크로 기초_R

이후 고급필터 매크로인 AdvancedFilter 함수의 사용법을 각 인수별로 하나씩 살펴봅니다.

2. 고급필터 매크로 실전 응용

엑셀 고급필터 자동화 currentregion_R

이번 강의에서는 실무에서 실시간으로 변하는 범위를 자동으로 인식하여 업무를 자동화할 수 있는 CurrentRegion 속성 사용법을 알아봅니다.

.
엑셀 고급필터 실전 자동화_R

이후 CurrentRegion 속성을 고급필터 매크로에 적용하는 방법을 알아봅니다.

3. 필터 자동화 마스터 코드 사용예제

엑셀 고급필터 자동화 완성파일_R

이번 강의 마지막 내용으로는 고급필터 자동화 매크로와 함께 활용가능한 실시간 정렬 및 범위 초기화 마스터 코드 사용법을 알아봅니다.

.
엑셀 고급필터 자동화 프로그램_R

최종 결과물로 강의에서 알아본 모든 매크로 명령문을 활용하여 실시간 필터링 및 정렬, 범위 초기화가 가능한 고급필터 자동화 서식을 제작합니다.

라이브 정보

회차 45회
방송일 2021년04월25일
카테고리 멤버쉽 라이브 강의
등급 Plus

커리큘럼

  1. 이번 강의에서 다룰 내용
    00:00
  2. 고급필터란 무엇인가요?
    03:28
  3. 실무에서 유용한 매크로 - Current Region
    06:24
  4. 기본 자동필터 기능 살펴보기
    07:46
  5. 엑셀 기본 필터기능의 문제점
    11:38
  6. 엑셀 고급필터 기본 사용법
    13:11
  7. Tip1: 고급필터로 원하는 필드만 출력하기
    18:09
  8. Tip2: 고급필터 여러개 조건 입력시 주의사항
    19:23
  9. Tip3: 엑셀 고급필터 단축키
    21:08
  10. 고급필터 제한사항 - 다른시트에 불러오기
    23:03
  11. 매크로 녹화로 고급필터 알아보기
    24:32
  12. Q&A범위로 표 이름을 넣을 수 있나요?
    32:59
  13. 버튼 클릭으로 매크로 실행하기
    34:17
  14. Q&A두 단어를 동시에 만족하는 조건 필터링
    36:43
  15. Q&ADB 함수를 사용해서 다른 파일의 정보를 불러올 수 있나요?
    39:25
  16. 완성파일 살펴보기
    41:29
  17. 완성된 고급필터에 들어간 조건 살펴보기
    42:47
  18. 완성된 고급필터 매크로 작성하기
    44:18
  19. 범위 초기화 명령문 추가하기
    47:15
  20. 초기화 명령문 동작원리 살펴보기
    49:03
  21. 검색 초기화 버튼 만들기
    51:17
  22. 필터링 범위 초기화 매크로 추가하기
    52:01
  23. 범위 정렬 매크로 추가하기
    54:05
  24. SelectionChange와 Change 이벤트 차이점
    56:11
  25. SelectionChange 이벤트 추가하기
    57:39
  26. 정렬 후 필터링 시 발생하는 문제 해결
    01:03:31
  27. Q&A데이터가 많으면 처리속도가 느려지지 않을까요?
    01:07:03
  28. Q&A배송방법을 데이터 유효성 검사로 선택하는 방법
    01:07:47
  29. Q&A완성파일에서 조건 여러개를 보는 방법
    01:08:49
  30. Q&A특정 지역을 제외하고 불러오는 방법
    01:16:43

질문 & 댓글 62

댓글 62
4.9 (32개 평가)
장공
장공 2021.05.26 21:26
너무 좋아요 오바두 엑셀 부자되세요
독일직장인
독일직장인 2021.07.02 15:26
영상 및 완성파일 다시 볼 수 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2021.07.04 03:56
안녕하세요.
라이브강의 다시보기는 유튜브 위캔두 멤버십 회원 여러분에게 제공해드리고 있습니다.
완성파일은 영상 하단 댓글에서 확인하실 수 있습니다. :)
감사합니다.
독일직장인
독일직장인 2021.07.08 22:37
Textsplit이 꼭 필요한데 직장 컴푸터에서는 이용이 불가하네요 ㅜㅜ.
6개 정도까지 쪼개야하는데 방법이 있을까요? 함수를 쓰면 너무 길어져서...
리엔
리엔 2021.09.11 21:01
  Sheet2.Range("A1").CurrentRegion.AdvancedFilter _
  Action:=xlFilterCopy, _
  CriteriaRange:=Sheet1.Range("L4").CurrentRegion, _
  CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
  Unique:=False
오타나 틀린게 있을까요?
RawData 에서는 잘되는데
수정 하고 주문조회에서는 나오질 않네요..
메뉴 이름 변경 하고 동일하게 다 변경을 했는데.
오류가 뜹니다.
오빠두엑셀
오빠두엑셀 작성자 2021.09.14 18:34
안녕하세요! ^^
CopyToRange의 범위를, 두번째 시트로 같이 수정해주시면 됩니다. :)
아래 코드로 수정해보시겠어요?
  Sheet2.Range("A1").CurrentRegion.AdvancedFilter _
  Action:=xlFilterCopy, _
  CriteriaRange:=Sheet1.Range("L4").CurrentRegion, _
  CopyToRange:=Sheet2.Range("B9").CurrentRegion.Rows(1), _
  Unique:=False
정성균
정성균 2021.09.15 00:03

궁금한게 있는데요.

영상 47분 바로전에 주문현황조회 누르잖아요.

메크로 영상보고 똑같이 만들었는데 조회버튼 누르면

rows 1행 제목만 나오고 아래 데이터가 안나와요.

Sub 고급필터()


  Sheet7.Range("A1").CurrentRegion.AdvancedFilter _

  Action:=xlFilterCopy, _

  CriteriaRange:=Sheet1.Range("L4").CurrentRegion, _

  CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _

  Unique:=False

  

End Sub

혹시 제 코딩에 먼가 문제가 있나요??

진짜 열씸히 배워보고싶은데... 막히니까 답답하네요.

도와주세요

참고로 sheet7은 매출이고 sheet1은 매출자료에요.

sheet1은 검색하는곳이고 sheet7은 데이터자료입니다.

vba에서 확인했어요

오빠두엑셀
오빠두엑셀 작성자 2021.09.20 17:39
정성균님 안녕하세요~!^^
얼마전에 유튜브에도 동일한 질문을 올려주셨던 걸로 기억하는데.. 제가 회신이 늦었습니다.
CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
이 부분을
CopyToRange:=Sheet7.Range("B9").CurrentRegion.Rows(1), _
로 한번 변경해보시겠어요?
다른 시트로 붙여넣기 하는 것이기 때문에, 붙여넣기 할 범위도 해당 시트로 변경해주셔야합니다.
xelloss****
xelloss**** 2021.09.26 15:14
안녕하세요, 영상을 통해 고급필터에 대해 배우게 되었습니다. 매번 친절하고 쉬운 강의에 감사드립니다.
혹시 고급필터로 여러시트에서 검색조건을 갖고 오려면 VBA를 어떻게 수정해야 할지도 궁금합니다^^;;
오빠두엑셀
오빠두엑셀 작성자 2021.10.01 20:16
xelloss 님 안녕하세요.
아쉽게도 고급필터를 1개 원본범위 또는 1개 조건범위에서만 불러올 수 있습니다.
만약 여러 시트를 대상으로 사용하시려면 고급필터를 여러번 사용하시거나, 필터링 매크로를 따로 작성하셔야 됩니다 :)
해아
해아 2021.11.20 08:13
최고에요. 답답했는데 뻥뚤려요
y****
y**** 2021.11.28 21:45
안녕하세요. 복습하고 실전에 응용할려고 하는데 진도가 안나갑니다. (2가지 문의드리겠습니다.)
1.   '1004'런타임 오류가 발생하였습니다.:
추출범위의 필드 이름이 잘못되었거나 없습니다.
라고 팝업창이 뜹니다.
VBA는 다음과 같습니다.(유튜브에서 응용해서 항목을 늘렸습니다.)
(첫번째는 sheet2 rawdata에서 sheet1 main(검색시트) 으로 불러들여 필터링 ; 팝업창이 떴습니다.
두번째는 처음배운 sheet2 rawdata에서 필터링 ; 이건 잘됩니다.)
Sub 고급필터() <---------오류가 난 코드(다른 sheet)
 
  Sheet2.Range("A1").CurrentRegion.AdvancedFilter _
  Action:=xlFilterCopy, _
  CriteriaRange:=Sheet1.Range("L3").CurrentRegion, _
  CopyToRange:=Sheet1.Range("B9").CurrentRegion.Rows(1), _
  Unique:=False
   
End Sub
______________________________________________
Sub 고급필터2()<---------------성공한 코드(같은 sheet)
 
  Range("A1").CurrentRegion.AdvancedFilter _
  Action:=xlFilterCopy, _
  CriteriaRange:=Range("EP1").CurrentRegion, _
  CopyToRange:=Range("EY1").CurrentRegion.Rows(1), _
  Unique:=False
   
End Sub
_______________________________________________
2.댓글창에 리앤님,정성균님 의 답글에 수정해주신
copytorange의 sheet 번호는 2->1,7->1 이 맞는것 아닌가요?(검색하는 시트번호 sheet1)
제경우에도 sheet 1->2 로 변경하니 rawdata가 날라갔습니다.
 
더이상 진행이 안되니 답답해 미치겠습니다. 답변 꼭 부탁드립니다.
 
오빠두엑셀
오빠두엑셀 작성자 2021.11.29 21:11
y*** 님 안녕하세요?^^
코드는 잘 작성하셨고 이상없습니다.
보조 명령문으로
Range(셀).CurrentRegion.Selection
각 범위가 잘 선택되는지 확인해보시고, 잘 선택되지 않으면 적절히 수정해보세요.
시트번호는 매크로편집기 좌측 프로젝트창에 보이는 시트 목록에서 해당 시트 번호를 찾아 작성하시면됩니다.
오세진
오세진 2021.12.17 13:03
45강 에서 자동화매그로 참고해서
날짜로 검색 하게끔 만들려고 합니다

날짜로 만드는게 어려워 시작을 못하고있어요 .

엑셀 날짜를 입력하면 그 날을 어떻게 계산되게 하나요??
오빠두엑셀
오빠두엑셀 작성자 2021.12.19 01:58
오세진님 안녕하세요?^^
엑셀은 날짜를 1900/1/1 을 숫자 1로 시작해서, 하루마다 1씩 더해지는 숫자값으로 계산됩니다.
고급필터에서 날짜로 필터링 하시려면
">="&DATE(연,월,일)
형태로 입력하시거나
">="&DATEVALUE(날짜)
형태로 작성하시면 대부분의 경우에 사용할 수 있습니다.
정세미
정세미 2022.03.01 13:44
정말 고맙습니다.
혹시 검색어 1개로 두개의 열에 대해 필터링된 결과를 나타낼 수는 없을까요?
열의 이름이 같아야 필터링 되는 거 같아서 방법을 모르겠습니다 ㅜㅜ
오빠두엑셀
오빠두엑셀 작성자 2022.03.09 21:28
안녕하세요.
고급필터 출력 범위에, 표시하고자 하는 열의 머리글만 입력하면, 두 열의 데이터만 출력할 수 있습니다.
정세미
정세미 2022.03.04 13:52
RAW 데이터에 날짜가 중복으로 입력되어있을 경우, 맨 처음 데이터만 필터링되서 보여집니다.
중복된 값도 전부 보일 수 있게 할 수 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.03.09 22:17
안녕하세요.
고급필터 설정 중 '동일한 레코드는 하나만' 옵션으로 Unique 설정을 True로 해서 그런 것 같습니다.
AdvancedFilter 코드 중, Unique 값이 설정되어 있으면 Unique:=False로 변경후 사용해보세요.

스크립트

자막을 불러오는 중...