환경 : Microsoft 365 / Excel 2021 이상
고급 필터(123번 글)는 원본이 바뀔 때마다 다시 실행해야 했습니다. Microsoft 365의 FILTER, SORT, UNIQUE는 수식 하나로 추출·정렬·중복 제거를 하고, 원본이 바뀌면 결과도 자동으로 바뀝니다.
1. 먼저 알아둘 점 : 스필(분산)
이 함수들은 결과가 여러 칸입니다. 첫 칸에만 수식을 입력하면 아래·옆으로 결과가 자동으로 펼쳐지며, 이를 스필이라고 합니다. 펼쳐진 범위는 F2#처럼 첫 셀 뒤에 #을 붙여 다른 수식에서 참조할 수 있습니다.
2. 예제 데이터 (가계부 사용내역)
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 일시 | 금액 | 구분 | 카테고리 |
| 2 | 2026-10-01 | 12,000 | 생활비 | 식비 |
| 3 | 2026-10-02 | 45,000 | 내용돈 | 쇼핑 |
| 4 | 2026-10-03 | 8,500 | 생활비 | 교통 |
| 5 | 2026-10-05 | 32,000 | 생활비 | 식비 |
| 6 | 2026-10-07 | 15,000 | 내용돈 | 개인용도 |
실제로는 A2:D100처럼 넉넉하게 범위를 잡아 두면 내역이 늘어나도 자동으로 포함됩니다.
예제 ① FILTER : 조건에 맞는 행만
=FILTER(A2:D100, D2:D100 = "식비", "내역 없음")
카테고리가 식비인 행만 추출합니다. 세 번째 인수는 결과가 없을 때 표시할 값입니다.
AND : =FILTER(A2:D100, (C2:C100 = "생활비") * (B2:B100 >= 10000))
OR : =FILTER(A2:D100, (D2:D100 = "식비") + (D2:D100 = "교통"))
조건끼리 *는 '그리고', +는 '또는'입니다. 각 조건은 괄호로 감쌉니다.
[캡처 : FILTER 결과]
예제 ② SORT : 정렬
=SORT(A2:D100, 2, -1)
2번째 열(금액) 기준 내림차순(-1)으로 정렬합니다. 오름차순은 1입니다. 정렬 기준 열이 결과에 없어도 되면 SORTBY를 씁니다. 예 : =SORTBY(D2:D100, B2:B100, -1)
예제 ③ UNIQUE : 중복 제거
=SORT(UNIQUE(D2:D100))
카테고리 목록을 중복 없이, 가나다순으로 뽑습니다. 빈 칸이 섞여 있으면 결과에 0이 하나 생기니 범위를 FILTER로 먼저 걸러 주세요. 예 : =SORT(UNIQUE(FILTER(D2:D100, D2:D100 <> "")))
예제 ④ 조합 : 카테고리별 자동 합계표
F2에 예제 ③의 수식을 넣고, G2에 아래 수식을 넣으면 카테고리가 늘어날 때마다 합계표가 자동으로 길어집니다.
=SUMIFS(B2:B100, D2:D100, F2#)
나만의 가계부(119번 글)의 카테고리별 합계·내역 시트를 손으로 만들 필요 없이 이 두 수식으로 대신할 수 있습니다.
[캡처 : 카테고리별 자동 합계표]
예제 ⑤ 금액 큰 순 TOP 3
=TAKE(SORT(A2:D100, 2, -1), 3)
정렬 결과에서 위 3행만 가져옵니다. (TAKE는 Microsoft 365 전용)
3. 주의사항
1. 결과가 펼쳐질 자리에 값이 있으면 #SPILL! 오류가 납니다. 아래·오른쪽을 비워 두세요.
2. 펼쳐진 결과의 일부만 지우거나 고칠 수 없습니다. 첫 셀의 수식을 고치세요.
3. Excel 2019 이하에서 파일을 열면 #NAME? 또는 고정된 값으로 보입니다. 공유 대상의 버전을 확인하세요.
4. 범위를 A:D처럼 열 전체로 잡으면 느려질 수 있으니 A2:D1000처럼 적당히 넉넉한 범위를 쓰세요.