
엑셀 FILTER 함수는 복잡한 데이터 분석에서 꼭 필요한 도구입니다. 단순한 필터링을 넘어 AND와 OR 조건을 조합하면 원하는 데이터를 정확하게 추출할 수 있습니다. 특히 Microsoft 365 사용자라면 이 함수의 강력한 기능을 통해 데이터 처리 효율성을 극대화할 수 있습니다.
FILTER 함수 기본 구조와 동작 원리
FILTER 함수는 =FILTER(범위, 조건, 결과없음메시지) 형태로 작성됩니다. 첫 번째 인수는 필터링할 데이터 범위이고, 두 번째 인수는 조건식, 세 번째 인수는 조건에 맞는 데이터가 없을 때 표시할 메시지입니다. 이 함수는 Microsoft 365와 Excel 2021 이상 버전에서만 사용 가능한 동적 배열 함수로, 결과가 여러 셀에 자동으로 확산됩니다. 조건식은 TRUE/FALSE 배열을 반환하며, TRUE인 행만 추출됩니다. 마이크로소프트 공식 문서에서 더 자세한 내용을 확인할 수 있습니다.
AND 조건으로 여러 기준 동시 만족하기
AND 조건은 모든 조건이 동시에 만족해야 하는 경우에 사용합니다. FILTER 함수에서는 곱셈 연산자(*)를 사용해 조건들을 연결합니다. 예를 들어 =FILTER(A1:C10,(B1:B10=”서울”)*(C1:C10>100000),”없음”)는 지역이 서울이면서 동시에 금액이 100,000 이상인 데이터만 추출합니다. 각 조건이 TRUE(1) 또는 FALSE(0)를 반환하므로 곱셈하면 모든 조건이 TRUE일 때만 1이 됩니다.
- 색상이 블루이면서 크기가 대형인 제품: =FILTER(데이터,(색상=”블루”)*(크기=”대”),”없음”)
- 판매량이 50 이상이면서 가격이 10000 미만인 상품: =FILTER(상품목록,(판매량>=50)*(가격<10000),"조건없음")
- 부서가 영업팀이면서 실적이 목표 이상인 직원: =FILTER(직원명단,(부서=”영업”)*(실적>=목표),”해당없음”)
- 날짜가 특정 기간 내이면서 상태가 완료인 작업: =FILTER(작업목록,(날짜>=시작일)*(날짜<=종료일)*(상태="완료"),"없음")
OR 조건으로 다중 선택지 처리하기
OR 조건은 여러 조건 중 하나라도 만족하면 되는 경우에 사용합니다. 덧셈 연산자(+)로 조건들을 연결하며, 하나의 조건이라도 TRUE면 결과가 TRUE가 됩니다. =FILTER(A1:C10,(B1:B10=”서울”)+(B1:B10=”부산”),”없음”)처럼 작성하면 지역이 서울이거나 부산인 데이터를 모두 추출할 수 있습니다. 이는 자동필터에서 여러 항목을 체크하는 것과 같은 효과입니다.
조건 유형 | 연산자 | 예시 |
---|---|---|
AND 조건 | * (곱셈) | (지역=”서울”)*(매출>1000) |
OR 조건 | + (덧셈) | (지역=”서울”)+(지역=”부산”) |
혼합 조건 | *와 + 조합 | (지역=”서울”)*(매출>1000)+(등급=”VIP”) |
부분 일치 | ISNUMBER+SEARCH | ISNUMBER(SEARCH(“키워드”,텍스트범위)) |
AND와 OR 조건 혼합 활용법
실무에서는 AND와 OR 조건을 혼합해서 사용하는 경우가 많습니다. 예를 들어 “색상이 블루이면서 크기가 대형이거나, 수량이 100 이상인 제품”을 찾으려면 =FILTER(데이터,(색상=”블루”)*(크기=”대”)+(수량>=100),”없음”)로 작성합니다. 괄호를 적절히 사용해 조건의 우선순위를 명확히 하는 것이 중요합니다. 고급 필터 기법을 참고하면 더 복잡한 조건식도 쉽게 구성할 수 있습니다.
복잡한 조건에서는 AND 함수나 OR 함수를 직접 사용할 수도 있습니다. =FILTER(데이터,AND(조건1,조건2)+OR(조건3,조건4),”없음”) 형태로 작성하면 가독성이 높아집니다. 하지만 성능면에서는 *와 + 연산자가 더 효율적입니다. 조건이 많을 때는 중간 계산 열을 만들어 조건식을 단순화하는 것도 좋은 방법입니다.
부분 일치와 와일드카드 조건 처리
FILTER 함수에서 부분 일치 검색을 하려면 ISNUMBER와 SEARCH 함수를 조합합니다. =FILTER(데이터,ISNUMBER(SEARCH(“키워드”,텍스트범위)),”없음”)처럼 작성하면 특정 키워드가 포함된 텍스트를 찾을 수 있습니다. 여러 키워드를 OR 조건으로 검색하려면 =FILTER(데이터,ISNUMBER(SEARCH(“키워드1”,텍스트범위))+ISNUMBER(SEARCH(“키워드2″,텍스트범위)),”없음”)로 확장할 수 있습니다.
대소문자를 구분하지 않는 검색을 원한다면 SEARCH 대신 FIND 함수를 사용하거나, UPPER나 LOWER 함수로 텍스트를 변환한 후 비교하는 방법이 있습니다. XelPlus 가이드에서 제공하는 고급 기법들을 활용하면 더욱 정교한 필터링이 가능합니다. 정규식 패턴이 필요한 복잡한 텍스트 처리는 Power Query를 함께 활용하는 것이 좋습니다.
실무 활용 팁과 주의사항
FILTER 함수 사용시 몇 가지 주의사항이 있습니다. 먼저 조건 범위와 데이터 범위의 행 수가 반드시 일치해야 합니다. 그렇지 않으면 #VALUE! 오류가 발생합니다. AND 조건에서 빈 셀이 있으면 모든 결과가 FALSE로 처리되므로, IF 함수를 사용해 빈 셀을 처리하는 것이 좋습니다. 예: =FILTER(데이터,(IF(조건셀=””,TRUE,데이터범위=조건셀))*(다른조건),”없음”)
동적 배열 함수이므로 결과가 여러 셀에 확산되는 점을 고려해 충분한 공간을 확보해야 합니다. 조건부 서식과 함께 사용하면 결과 범위에만 자동으로 테두리나 색상을 적용할 수 있어 시각적 효과를 높일 수 있습니다. 마이크로소프트 고급 기준 필터 문서를 참고하면 더 많은 활용법을 익힐 수 있습니다. 대용량 데이터에서는 성능을 고려해 조건을 최적화하고, 필요시 SORT나 UNIQUE 함수와 조합해 사용하면 더욱 강력한 데이터 분석이 가능합니다.