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

엑셀 FILTER 함수 사용법 총정리

오빠두엑셀 by 오빠두엑셀
  • 학습시간 25분
  • 난이도 초급
  • 작성일 2020.03.18

FILTER 함수의 기초/고급 사용법 및 문제해결 방법 총정리!

이 강의에서는 오피스 365의 동적배열함수인 FILTER 함수로 셀 값에 따라 실시간으로 데이터를 필터링하는 방법을 다룹니다. 함수의 기초 사용법은 물론, 다중 조건을 적용할 때 발생하는 빈칸 인식 문제를 IF 함수로 해결하는 방식, 부분 일치 검색, 그리고 필터링 결과를 동적 차트로 연결하는 응용까지 단계별로 정리합니다.

엑셀 FILTER 함수 사용법 총정리
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

업데이트 강의 안내

초보자를 위한 5분 핵심 요약! 아래 5분 핵심정리 강의에서 FILTER 함수의 주요 내용을 빠르게 확인할 수 있습니다.

엑셀 FILTER 함수 실전예제 총정리

2020년 3월 기준, 모든 오피스 365 월채널 구독자를 대상으로 엑셀의 '동적배열함수'가 공개되었습니다. 대표적인 함수로는 XLOOKUP 함수와 FILTER 함수가 있습니다.

이번 강의에서는 FILTER 함수의 기초 사용법과 다양한 응용 방법, 그리고 자주 발생하는 문제의 해결법을 단계별로 살펴봅니다.

1. FILTER 함수 기초 사용법

FILTER 함수에는 다음 3개의 인수가 사용됩니다.

= FILTER ( 배열, 포함, [if empty] )
인수 설명
배열 필터링을 적용할 전체 범위입니다.
포함 필터링을 적용할 조건을 '논리식'으로 입력합니다.
if empty
[선택인수]
FILTER 함수의 결과값이 없을 경우 반환할 값을 입력합니다.

FILTER 함수의 기초 사용법은 아래 관련 포스트에서 더욱 자세히 안내합니다.

2. 셀을 참조하여 동적으로 필터링하기

FILTER 함수의 조건으로 셀을 참조하여 수식을 작성하면, 셀에 입력된 값에 따라 실시간으로 필터링을 적용할 수 있습니다. 예제파일의 'FILTER 함수 -실전' 시트로 이동한 뒤, '판매내역' 데이터를 바탕으로 FILTER 함수를 작성해 보겠습니다.

  1. 수식을 더욱 쉽게 작성하기 위해 범위를 표로 변환합니다. 이때 '머리글 포함'에 반드시 체크해야 합니다.범위를 표로 변환
  2. 표로 변환한 뒤, 상단 '표 디자인' 메뉴에서 표 스타일을 '없음'으로 변경합니다.표 스타일 없음으로 변경
  3. 표의 이름을 'tbl판매내역'으로 변경합니다.표 이름 변경하기
  4. 표 우측에 조건을 입력할 범위를 생성한 뒤, 셀의 배경색과 테두리를 적절히 변경합니다.filter 조건 범위
  5. 이후 아래의 FILTER 함수를 입력합니다.
    =FILTER(tbl판매내역,tbl판매내역[날짜]=J2,"결과없음")

    filter 함수 입력

  6. 현재는 조건이 비어 있으므로 "결과없음"이 결과값으로 출력됩니다.filter 함수 결과 없음
  7. 날짜 조건으로 값을 입력합니다. 1/1, 1/2 등 날짜를 조건으로 입력하면 입력한 조건에 따라 데이터가 필터링됩니다.filter 함수 출력
  8. 기존 데이터의 머리글을 복사하여 필터링된 범위에 붙여넣기 합니다.필터 범위 머릿글 복사
  9. 필터링된 범위의 서식을 변경합니다. '날짜' 열을 전체 선택한 뒤, 셀 서식을 '날짜 형식'으로 변경합니다.filter 함수 출력값 서식 변경
  10. '단가'와 '가격' 열을 선택한 뒤, '천 단위 구분 기호'를 표시하고 '우측 정렬'로 서식을 변경합니다.filter 함수 서식 변경 천단위
  11. '판매채널'과 '단가' 열을 숨겨 줍니다. (단축키: Ctrl+0)필터함수 불필요한 범위 숨기기
  12. 이제 날짜 조건을 변경하면 입력된 값에 따라 데이터가 실시간으로 필터링됩니다.filter 함수 실시간 업데이트
3. 다중 조건 필터링 적용하기

FILTER 함수의 두 번째 인수에 여러 개의 조건을 '곱셈'으로 입력하면 다중 조건 필터링을 적용할 수 있습니다. FILTER 함수의 다중 조건 공식은 다음과 같습니다.

= FILTER ( 전체범위, (조건범위1=조건1)*(조건범위2=조건2)*..., [if empty] )

따라서 기존의 FILTER 함수를 아래 수식으로 대체하면 '날짜'와 '제품명'으로 다중 조건 필터링을 적용할 수 있습니다.

=FILTER(tbl판매내역,(tbl판매내역[날짜]=J2)*(tbl판매내역[제품명]=J3),"결과없음")

filter 함수 다중조건 필터

4. 다중 조건 적용 시 빈칸 인식 문제 해결

다중 조건으로 필터링을 적용할 때 한 가지 문제가 발생합니다. 여러 조건 중 하나라도 빈칸이 되면 다른 조건과 상관없이 결과가 무조건 '결과없음'으로 반환되는 현상입니다.

필터함수 빈칸 결과없음

이는 FILTER 함수에 입력된 조건 인수를 직접 확인하면 원인을 바로 파악할 수 있습니다.

  1. 여러 조건 가운데 '제품명' 조건을 빈칸으로 변경합니다.필터함수 다중조건 문제
  2. FILTER 함수에서 '제품명'에 해당하는 조건 부분을 마우스로 드래그하여 선택합니다.filter 함수 조건 인수 목록 확인
  3. 키보드 F9키를 눌러 반환되는 값을 확인하면 모든 값이 'FALSE'로 반환되는 것을 확인할 수 있습니다.모든 값 false 반환

이렇게 모든 값이 FALSE로 반환되는 문제는 IF 함수를 함께 사용하여 간단하게 해결할 수 있습니다. 사용되는 공식은 다음과 같습니다.

= FILTER ( 전체범위, IF(조건1="",조건범위1=조건범위1,(조건범위1=조건1))*IF(조건2="",조건범위2=조건범위2,(조건범위2=조건2))*..., [if empty] )

따라서 기존의 FILTER 함수를 아래 수식으로 대체하면, 조건 중 하나가 빈칸이 되더라도 원하는 조건만으로 필터링할 수 있습니다.

=FILTER(tbl판매내역,IF(J2="",tbl판매내역[날짜]=tbl판매내역[날짜],(tbl판매내역[날짜]=J2))*IF(J3="",tbl판매내역[제품명]=tbl판매내역[제품명],(tbl판매내역[제품명]=J3)),"결과없음")

조건 중 하나 빈칸이여도 필터

5. 부분 일치로 필터링하기

입력해야 할 조건의 글자 수가 길어 필터링 적용에 어려움이 있다면, 유사 일치 공식을 사용할 수 있습니다. 유사 일치 공식에는 ISNUMBER 함수와 SEARCH 함수를 사용하며, 공식은 다음과 같습니다.

=IF(ISNUMBER(SEARCH(찾을문자,셀)),출력값,"")
엑셀 부분 일치 검색 공식 상세 설명 바로가기

유사 일치 공식을 사용하면 제품명을 모두 입력하지 않아도 '시스타', '피핀'과 같이 특정 단어를 포함한 모든 제품을 검색할 수 있습니다.
따라서 기존의 FILTER 함수를 아래 수식으로 대체할 경우, 제품명의 일부분인 '브랜드' 또는 '색상'을 검색하면 해당 단어를 포함하는 모든 데이터를 필터링할 수 있습니다.

=FILTER(tbl판매내역,IF(J2="",tbl판매내역[날짜]=tbl판매내역[날짜],(tbl판매내역[날짜]=J2))*IF(J3="",tbl판매내역[제품명]=tbl판매내역[제품명],(ISNUMBER(SEARCH(J3,tbl판매내역[제품명])))),"결과없음")

filter 함수 부분일치

6. 3D 검색, 다중 검색 조건으로 필터링하기

FILTER 함수는 다양한 방법으로 응용할 수 있는 만능 함수입니다. 특히 데이터를 분석하거나 보고서를 작성할 때 매우 유용하게 사용할 수 있습니다.

예를 들어, 보다 유연한 자료 분석을 위해 다음 3가지 조건으로 날짜를 필터링한다고 가정하겠습니다.

  • 요일
  • 날짜

위 3가지 검색 조건으로 날짜를 필터링하려면 어떻게 해야 할까요? FILTER 함수는 조건으로 '배열'을 받습니다. 따라서 조건 안에 또 다른 함수를 사용할 수 있다는 큰 장점이 있습니다. 아래와 같이 '날짜' 범위에 MONTH 함수를 적용해 보겠습니다.

=FILTER(tbl판매내역,IF(J2="",tbl판매내역[날짜]=tbl판매내역[날짜],(MONTH(tbl판매내역[날짜]=J2)))*IF(J3="",tbl판매내역[제품명]=tbl판매내역[제품명],(ISNUMBER(SEARCH(J3,tbl판매내역[제품명])))),"결과없음")

MONTH 함수를 사용하여 날짜 범위를 필터링하면 1월, 2월과 같이 특정 월에 해당하는 모든 데이터를 필터링할 수 있습니다. 같은 원리로 WEEKDAY 함수나 WEEKNUM 함수를 사용하면 특정 요일이나 특정 주에 해당하는 값을 필터링할 수도 있습니다.

filter 함수 월 필터링

FILTER 함수로 3D 검색, 즉 다중 검색 조건으로 필터링하는 방법을 단계별로 살펴보겠습니다.

  1. 날짜 조건 옆 셀을 선택한 뒤, [데이터] - [데이터 유효성 검사]로 이동합니다. 이후 제한 대상을 '목록'으로 선택한 뒤, 원본에 '날짜,요일,월'을 입력합니다.데이터 유효성 목록 추가
  2. 이후 날짜 조건이 입력된 셀을 선택하여 조건부 서식을 적용합니다. 검색 조건으로 '월' 또는 '요일'이 선택되면 일반 서식이, '날짜'가 선택되면 날짜 서식이 적용되도록 설정합니다.날짜 요일에 따른 조건부서식
  3. '조건부 서식' - '새 규칙'으로 이동한 뒤, 검색 조건이 '월' 또는 '요일'일 경우 '일반 서식'이 되도록 조건부 서식을 추가합니다.
    =OR($L$2="요일",$L$2="월")

    월 요일 조건부서식 추가

  4. 같은 원리로 검색 조건이 '날짜'일 경우 '날짜 서식'이 적용되도록 새로운 조건부 서식을 추가합니다.
    =$L$2="날짜"

    날짜 조건부서식 추가

  5. 기존의 FILTER 함수를 아래 수식으로 대체합니다.
    =FILTER(tbl판매내역,IF(J2="",tbl판매내역[날짜]=tbl판매내역[날짜],IF(L2="월",MONTH(tbl판매내역[날짜])=J2,IF(L2="요일",WEEKDAY(tbl판매내역[날짜])=J2,tbl판매내역[날짜]=J2)))*IF(J3="",tbl판매내역[제품명]=tbl판매내역[제품명],(ISNUMBER(SEARCH(J3,tbl판매내역[제품명])))),"결과없음")
  6. 이제 날짜, 요일, 월에 따라 다양한 조건으로 데이터를 필터링할 수 있습니다.엑셀 FILTER 함수 실전예제 완성 GIF

FILTER 함수 반환 범위를 동적 차트로 출력하기

FILTER 함수로 출력된 데이터를 참조하여 실시간으로 업데이트되는 동적 차트를 만들 수 있습니다. 동적 범위와 동적 차트의 동작 원리는 아래 관련 강의에서 더욱 자세히 설명합니다.

  1. FILTER 함수의 날짜 범위를 동적 범위로 변환합니다. '수식' - '이름 관리자'로 이동하여 [새로 만들기]를 클릭한 뒤, 아래 표와 같이 새로운 동적 범위를 추가합니다.
    구분 내용
    이름 rng날짜
    참조 대상 =OFFSET($I$6,,,COUNTA($I$6:$I$1000))

    filter 출력 범위 동적범위 추가

  2. UNIQUE 함수를 사용하여 동적 범위에서 고유값만 추출합니다. 우측에 새로운 '날짜' 열을 추가한 뒤 아래 수식을 입력합니다.
    차트의 가로축에 들어갈 데이터이므로 반드시 TEXT 함수를 사용하여 텍스트 형식으로 변환해야 합니다.

    =TEXT(UNIQUE(rng날짜),"mm/dd")

    unique 함수 와 text 함수

  3. '수량'과 '가격' 열을 추가한 뒤, SUMIF 함수를 사용하여 해당 날짜를 만족하는 수량과 가격의 합계를 계산합니다. 수식은 아래로 넉넉하게 자동 채우기합니다.sumif 함수 조건별 합계
  4. 차트에 사용할 동적 범위를 추가합니다. (동적 범위 수식은 각자 작성한 시트에 맞춰 알맞게 수정합니다.)
    이름 참조 대상
    rng날짜_차트 =OFFSET($P$6,,,COUNTA($P$6:$P$1000))
    rng수량_차트 =OFFSET($Q$6,,,COUNTA($P$6:$P$1000))
    rng가격_차트 =OFFSET($R$6,,,COUNTA($P$6:$P$1000))
  5. 고유값으로 출력된 범위를 전체 선택한 뒤 차트를 생성합니다.새로운 차트 추가
  6. 차트를 우클릭한 뒤 '데이터 선택'으로 이동합니다. 이후 범례 항목 계열의 [편집] 버튼을 클릭하여 '수량'과 '가격'의 계열값을 다음과 같이 수정합니다.
    범례 항목(계열) 계열값
    수량 ='FILTER함수-실전'!rng수량_차트
    가격 ='FILTER함수-실전'!rng가격_차트

    계열 편집

  7. 가로(항목) 축 레이블도 '편집'을 클릭하여 축 레이블 범위를 변경합니다.
    항목 내용
    축 레이블 범위 ='FILTER함수-실전'!rng날짜_차트

    축 레이블 동적범위 추가

  8. 차트를 우클릭한 뒤 '차트 종류 변경'으로 이동합니다. 이후 '혼합'에서 '수량'을 '보조축'으로 선택합니다.혼합 차트 변경
  9. 차트를 적절히 수정하여 동적 차트를 완성합니다. 보고서 작성용 차트를 만드는 5단계 공식은 아래 관련 강의에서 자세히 설명합니다.
    엑셀 filter 함수 사용법 동적차트 완성 GIF

링크 : MS 홈페이지 FILTER 함수 상세 설명

댓글 108
4.8 (58개 평가)
호야
호야 2020.03.19 07:08
원하던 함수가 생겼네요 잘보고 갑니다.
이원근
이원근 2020.03.19 10:25
항상 잘 배우고 갑니다.
궁금해서 질문 하나드립니다.
필터함수를 적용할 값에 다른 엑셀 파일에 있는 외부 주소를 적용하고 싶은데요.
예를 들어 A 파일의 데이터를 B 파일의 필터함수 주소로 적용한다고 가정했을 때,
1. B파일을 다른 사람에게 전송했을 때 A파일의 주소가 남아있지 않아 함수가 깨지는 지(만약 필터함수와 데이터 모두를 살려서 보낼 수 있는 방법이 있으면 알려주시면 정말 감사드리겠습니다)
2. 아니면 A 데이터를 C라는 데이터모델 연결만 만들어놓은 파일에서 피벗테이블을 만들지 않고 그 데이터 주소를 활용할 수 있는지
여쭤봅니다...
람보
람보 2020.03.24 17:21
xFILTER 예제파일 실행하고부터, 모든엑셀파일을 열때마다 에제파일 실행되고나서 엑셀파일들이 열려요
이거 해결방법이 없을까요!!
오빠두엑셀
오빠두엑셀 작성자 2020.03.24 18:23
안녕하세요?^-^
예제파일에는 xFILTER 함수만 포함되어 있으므로 해당 문제와는 무관합니다.
'파일' - '옵션' - '보안센터설정' - '신뢰할수있는위치'

로 이동하신 뒤, Excel 시작으로 지정된 폴더에 예제파일이 위치한것이 아닌지 확인해보시겠어요?^^
감사합니다.
바우데기
바우데기 2020.03.24 17:33
DuTool 2번째 강의를 보았습니다.
그런데 제가 DuTool을 설치해서 xFilter로 보고서를 만들어서 다른 직원과 공유하면,
그 직원은 FILTER 기능을 사용할 수 있는 건가요?
오빠두엑셀
오빠두엑셀 작성자 2020.03.24 18:17
안녕하세요?^-^
해당직원의 pc에도 xFILTER 추가기능이 설치되어 있어야만 사용가능합니다.
만약 해당직원이 Office 365를 사용중이라면, 추가기능을 보내지 않고, "=xFILTER" 를 "=FILTER" 로 찾아바꾸기하여 바로 사용할 수 있습니다.
제 답변이 도움이 되셨길 바랍니다.
감사합니다 ^-^
JY
JY 2020.03.25 10:45
정말 잘 배우고 갑니다.
바우데기
바우데기 2020.03.25 14:05
xFILTER함수를 사용해보려고 DuTool을 설치한 후에, 예제파일로 동영상 강의를 따라가는데 시작부터 난관이 있습니다.
=xFILTER(tbl판매내역,tbl판매내역[날짜]=J2,"결과없음")
으로 입력하는데, 왜 #VALUE! 에러가 뜨는 걸까요?

어디가 잘못되었는지 지적 부탁드립니다.
오빠두엑셀
오빠두엑셀 작성자 2020.03.25 16:26
안녕하세요^^
xFILTER를 오피스 365 이전버전에서 사용하실 경우 Ctrl + Shift + Enter 키로 입력하셔야 합니다.
www.oppadu.com/product/엑셀-xfilter-함수-추가기능/
위 링크의 사용시 참고사항을 다시 확인해보시겠어요?^^
감사합니다.
바우데기
바우데기 2020.03.25 16:44
아하~ 제가 급한 마음에 기본을 잊고 있었네요.
빠른 답변 감사합니다.
공명
공명 2020.04.02 13:36
와 정말 엑셀로 안되는게 없네요
꼭 필요했던 함수! 회사컴이 2010버전이라 당장 활용할 수 없다는게 아쉽네요
열심히 활동해서 함수 업데이트 해야겠습니다
(혹 포인트 유료충전은 안되려나요 너무 탐나는 함수네요 ㅠㅠ )
오빠두엑셀
오빠두엑셀 작성자 2020.04.03 14:20
안녕하세요?^_^
현재 EP 포인트는 활동으로만 획득할 수 있도록 되어 있습니다. 종종 포인트관련 이벤트를 진행하고 있으니, 참고부탁드릴께요!^-^
아래 70% 할인쿠폰을 발급해 드렸으니 확인해보시겠어요?
nawhh3wd
감사합니다.
채은아빠
채은아빠 2020.04.07 15:46
필터된 내용에 표서식이 안되는건가요? 아님 방법이 있는데 제가 못찾는 건가요 ㅠㅠ 표서식이 반영되면 정말 쓸 수 있는 곳이 무궁무진해 질거 같은데 방법이 있다면 알려주세요.
오빠두엑셀
오빠두엑셀 작성자 2020.04.07 16:26
안녕하세요?^-^
모든 동적배열함수로 출력되는 '분산범위'에는 표기능을 사용할수가 없습니다..ㅠ-ㅠ 참 아쉬운 부분인데요.
표'서식'이 필요하신거라면, 조건부서식을 적용하시면 표서식과 동일하게 출력된 범위에만 서식을 적용하실 수 있으니 확인해보시겠어요?
감사합니다!
빠끼
빠끼 2020.04.19 23:22
제가 너무 필요했던 함수라 바로 xfilter함수를 사용하여 문서를 하나 만들었습니다. 그런데 다른 문구는 다 찾아지는데 유독 하나만 안 찾아집니다. 그리고 f9를 눌러서 어떻게 나오는지 확인해보니 FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;棊 이렇게 나오더라구요. 棊 이 문구는 왜 나오는건지 모르겠어요. 알려주세요~ ㅠㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2020.05.07 10:56
안녕하세요?
적어주신 내용만으론 정확한 답변을 드리기 어렵습니다.^^;
관련 예제파일을 Q&A 게시판에 올려줄수 있으신가요? 확인 후 회신하여 드리겠습니다.
감사합니다.
Netpiapro
Netpiapro 2020.04.20 15:22
강의 하나하나가 주옥 같아요. 오빠 덕분에 근자감이 하늘을 찌르네요. 이러다 엑셀로 인공위성도 띄울기셉니다.