기본 콘텐츠로 건너뛰기

글

라벨이 FILTER인 게시물 표시

[엑셀]FILTER 함수 원리 — 엑셀 안에 숨어 있는 WHERE절

 매장별 판매 데이터 수천 행 중에서 "서울 지역이면서 매출이 100만원 이상인 행"만 뽑아 별도 표로 만들어야 하는 상황이라고 해보자. 예전 같으면 자동 필터를 걸고 눈으로 복사하거나, 고급 필터 대화상자와 씨름해야 했다. 지금은 FILTER 함수 하나면 끝난다. 그런데 이 함수의 동작 방식을 데이터베이스를 다뤄본 사람이라면 꽤 익숙하게 느낄 것이다. 바로 SQL의 WHERE절과 개념적으로 닮아 있기 때문이다. FILTER의 기본 구조 =FILTER(A2:D1000, B2:B1000="서울") FILTER는 두 개의 핵심 인수를 받는다. "걸러낸 결과로 보여줄 범위"와 "그 판단 기준이 되는 조건"이다. 이 수식은 B열이 "서울"인 행들만 골라, A부터 D열까지의 전체 행 데이터를 그대로 스필(앞선 글에서 다룬 동적 배열)로 펼쳐 보여준다. SUMIF가 조건에 맞는 값을 '더하는' 함수였다면, FILTER는 조건에 맞는 '행 자체를 그대로 가져오는' 함수라는 점이 가장 큰 차이다. WHERE절과의 개념적 유사성 SQL에 익숙하다면 아래 두 표현이 사실상 같은 일을 한다는 것을 바로 알아챌 수 있다. SQL 엑셀 FILTER SELECT * FROM sales WHERE region = '서울' =FILTER(A2:D1000, B2:B1000="서울") WHERE region = '서울' AND amount >= 1000000 =FILTER(A2:D1000, (B2:B1000="서울")*(C2:C1000>=1000000)) 두 방식 모두 "전체 데이터 중 특정 조건을 만족하는 행만 선택한다"는 동일한 개념 위에 서 있다. 다만 SQL의 WHERE는 조건을 하나의 불리언 식으로 서술하는 반면, 엑셀의 FILTER는 앞서 SUMPRODUCT에서 다룬 것처럼...