엑셀 FILTER·SORT·UNIQUE 함수 — 동적 배열로 데이터 자동 추출하기

최종 업데이트 2026-07-04

FILTER, SORT, UNIQUE는 마이크로소프트 365와 최신 구글시트에서 지원하는 '동적 배열' 함수입니다. 조건에 맞는 데이터를 자동으로 추출해서 여러 셀에 한꺼번에 뿌려주기 때문에, 예전에는 필터·정렬 메뉴를 수동으로 눌러야 했던 작업을 수식 하나로 자동화할 수 있습니다. 원본 데이터가 바뀌면 결과도 즉시 갱신되는 것이 가장 큰 장점입니다.

FILTER — 조건에 맞는 행만 뽑기

=FILTER(배열, 조건, [조건에 맞는 값이 없을 때 표시할 값])

A2:C100에 이름·부서·매출 데이터가 있고, 부서(B열)가 '영업'인 행만 뽑고 싶다면 다음과 같이 씁니다. 결과는 별도의 필터 메뉴 없이 자동으로 여러 행에 펼쳐집니다.

=FILTER(A2:C100, B2:B100="영업")

조건은 AND(*)와 OR(+)로 여러 개 결합할 수 있습니다. 부서가 '영업'이면서 매출이 100만원 이상인 행만 뽑으려면 다음처럼 두 조건을 곱합니다.

=FILTER(A2:C100, (B2:B100="영업")*(C2:C100>=1000000))

SORT — 결과를 정렬해서 보여주기

=SORT(배열, [정렬기준 열번호], [오름차순1/내림차순-1])

FILTER로 뽑은 결과를 매출 높은 순으로 정렬하려면 SORT와 FILTER를 중첩하면 됩니다. 정렬 기준 열번호는 배열 안에서의 상대 위치이며, 마지막 인수 -1은 내림차순을 의미합니다.

=SORT(FILTER(A2:C100, B2:B100="영업"), 3, -1)

UNIQUE — 중복 없는 목록 뽑기

=UNIQUE(배열, [열 기준 여부], [한 번만 나온 값만]

부서 목록에서 중복 없이 부서명만 뽑고 싶다면 다음처럼 작성합니다. 드롭다운 목록의 원본 데이터를 자동 생성할 때도 많이 쓰입니다.

=UNIQUE(B2:B100)

세 함수 조합 — 실시간 랭킹 보고서 만들기

세 함수를 중첩하면 '중복 없는 담당자 목록 중 이번 달 매출 상위 항목만 자동 정렬'하는 실시간 보고서를 수식 하나로 만들 수 있습니다.

=SORT(FILTER(UNIQUE(A2:C100), UNIQUE(A2:C100)[매출]>=500000), 3, -1)

실무에서는 위처럼 복잡하게 한 줄로 만들기보다, UNIQUE 결과를 한 열에 먼저 뽑고 그다음 SUMIF·FILTER로 집계하는 2단계 구조가 유지보수에 더 유리합니다. 수식이 길어질수록 오류를 찾기 어려워지기 때문입니다.

자주 나는 오류와 주의사항

  • #SPILL! 오류: 결과가 펼쳐질 자리(아래·오른쪽 셀)에 이미 값이 있으면 발생합니다. 결과가 나올 공간을 미리 비워두세요.
  • #CALC! 오류: FILTER 조건에 맞는 행이 하나도 없을 때 발생합니다. 세 번째 인수에 기본값(예: "" 이나 "결과없음")을 넣어 방지할 수 있습니다.
  • 이 함수들은 엑셀 2019 이하(구독형이 아닌 영구 라이선스)에서는 지원되지 않습니다. Microsoft 365 또는 구글시트를 사용해야 합니다.
  • SPILL 범위를 참조할 때는 시작 셀에 # 을 붙입니다. 예: FILTER 결과가 D2에서 시작하면 D2# 로 전체 결과 범위를 참조할 수 있습니다.
💡

FILTER·SORT·UNIQUE는 피벗테이블과 달리 '새로고침' 버튼을 누를 필요 없이 원본 데이터가 바뀌자마자 자동으로 갱신됩니다. 매일 업데이트되는 데이터의 실시간 대시보드에 적합합니다.

동적 배열 수식도 AI로 쉽게 만들기 →

함께 보면 좋은 글