목차▾
엑셀 FILTER 함수란?
엑셀 FILTER 함수는 조건에 맞는 행/열을 배열로 자동 추출하는 동적 배열 함수입니다. VLOOKUP·XLOOKUP은 첫 매칭만 반환하지만, FILTER는 모든 매칭 행을 한 번에 추출. 대시보드·동적 보고서·실시간 조건 검색의 표준.
구문은 =FILTER(범위, 조건, [빈결과]) 3인수. Microsoft 365·Excel 2021+ 전용 (Excel 2019 이하 미지원). Google Sheets도 지원 하지만 인수 순서가 약간 다름.
동적 배열 + Spill 동작
- 단일 셀에 입력하면 결과 전체가 인접 셀로 spill (넘침)
- 결과 영역의 첫 셀에만 수식, 나머지는 자동 표시 (회색 테두리)
- spill 범위 침범 시 #SPILL! 오류
- 결과 크기는 동적 — 원본 데이터가 늘어나면 spill 영역도 자동 확장
A1: =FILTER(데이터, 조건)
→ A1, A2, A3, ... B1, B2, ... 자동 spill
AND·OR 결합 (*, +)
FILTER는 AND/OR 함수가 아닌 곱셈/덧셈으로 조건 결합:
| 조건 | 패턴 | 예 |
|---|---|---|
| AND | (조건1) * (조건2) | (B="서울")*(C>=100) |
| OR | (조건1) + (조건2) | (B="서울")+(B="부산") |
| NOT | 1 - (조건) | (B<>"서울") |
AND: =FILTER(데이터, (지역="서울")*(매출>=100))
OR : =FILTER(데이터, (지역="서울")+(지역="부산"))
AND/OR 함수(=AND(B="서울", C>100))는 단일 결과만 반환해서 배열 동작 안 함. 반드시 *, + 사용.
실전 사용 시나리오 10가지
- 단일 조건 —
=FILTER(A2:C100, B2:B100="서울") - AND 결합 —
=FILTER(A2:D100, (B2:B100="서울")*(C2:C100>=100)) - OR 결합 —
=FILTER(A2:D100, (B2:B100="서울")+(B2:B100="부산")) - 빈 결과 처리 —
=FILTER(A2:C100, B2:B100="평양", "결과 없음") - 특정 열만 —
=FILTER(A2:A100, B2:B100="서울") - 동적 검색 (드롭다운) —
=FILTER(데이터, 분류=E1) - FILTER + SORT —
=SORT(FILTER(데이터, 지역="서울"), 3, -1) - FILTER + UNIQUE —
=UNIQUE(FILTER(데이터, 지역="서울")) - 텍스트 부분 일치 —
=FILTER(A2:A100, ISNUMBER(SEARCH("애플", A2:A100))) - 날짜 범위 —
=FILTER(데이터, (날짜>="2026-01-01")*(날짜<="2026-12-31"))
FILTER vs VLOOKUP·AutoFilter
| 함수 | 결과 수 | 사용 |
|---|---|---|
| VLOOKUP | 1개 (첫 매칭) | 단일 룩업 |
| XLOOKUP | 1개 (또는 배열 반환) | 단일 룩업·VLOOKUP 후속 |
| INDEX/MATCH | 1개 | 유연한 단일 룩업 |
| FILTER | 여러 개 | 복합 조건·다중 결과 |
| AutoFilter (UI) | 원본 위 숨김 | 임시 필터 |
→ 여러 결과 필요시 FILTER, 단일 매칭이면 XLOOKUP, 임시면 AutoFilter.
자주 발생하는 오류·함정 6가지
- #SPILL! — spill 자리에 다른 데이터. 결과 영역 비우거나 다른 위치로
- #CALC! — 빈 결과 + if_empty 없음. 3번째 인수로 메시지 지정
- #VALUE! — array와 include 행 수 다름. A2:A100과 B2:B50 조합 X
- 버전 호환성 — Excel 2019 이하 미지원. 대안: IFERROR+INDEX+SMALL 배열 수식
- AND/OR 함수 잘못 사용 —
AND(B="서울", C>100)은 단일 결과.*(곱셈)으로 배열 AND 구현 - 절대 참조 — 수식 복사 시 범위 변경 주의.
$A$2:$A$100권장
자주 묻는 질문
Q. FILTER 함수 사용법은?
=FILTER(범위, 조건, [빈결과]) 형식입니다. 예: =FILTER(A2:C100, B2:B100="서울") → 지역이 서울인 행만 추출. Microsoft 365·Excel 2021+에서만 지원.
Q. AND·OR 조건은 어떻게?
AND는 곱셈 *, OR는 덧셈 +. (B="서울")*(C>=100) = AND, (B="서울")+(B="부산") = OR. AND/OR 함수는 배열 동작 안 함.
Q. #SPILL! 오류는 왜 나나요?
결과가 spill될 영역에 다른 데이터가 있으면 발생. FILTER는 결과 크기에 맞게 인접 셀로 펼치는데, 그 자리에 값이 있으면 충돌. 영역을 비우거나 다른 위치로 옮기세요.
Q. 결과가 없으면 어떻게?
3번째 인수 if_empty로 표시할 값 지정: =FILTER(범위, 조건, "결과 없음"). 생략하면 #CALC! 오류.
Q. FILTER vs VLOOKUP?
VLOOKUP은 1개 결과, FILTER는 여러 결과. VLOOKUP은 첫 매칭만 반환, FILTER는 모든 매칭. 여러 행이 필요하면 FILTER, 단일 룩업이면 VLOOKUP/XLOOKUP.
Q. Excel 2019에서 사용 가능한가요?
불가. FILTER는 Microsoft 365·Excel 2021+ 전용. Excel 2019 이하에서는 IFERROR + INDEX + SMALL의 배열 수식이나 AutoFilter로 대체. 버전 확인 필수.
Q. 정렬·중복 제거와 조합은?
=SORT(FILTER(...)) 정렬, =UNIQUE(FILTER(...)) 중복 제거. 동적 배열 함수들은 자유롭게 중첩 가능.
Q. 구글 스프레드시트에서도 동일하게 작동하나요?
네. Google Sheets에도 FILTER 함수 있고 동일하게 작동. 단 인수 순서가 약간 다른 경우 있어서(특히 다중 조건) 공식 문서 확인 권장.
본 페이지는 Microsoft Support 공식 FILTER·Dynamic Arrays 문서를 기준으로 작성되었습니다. 정확한 동작은 Excel 버전·환경에 따라 달라질 수 있으니 중요한 작업 전에는 실제 환경에서 확인하세요.