홈 › 엑셀 수식·함수

중복 제거 수식 (UNIQUE)

UNIQUE는 결과를 아래 칸으로 펼쳐 보여 주는 동적 배열 함수예요. 원본이 바뀌면 목록도 저절로 바뀌어요.

파일은 서버로 전송되지 않고 내 기기에서만 처리돼요
여러 열이면 B2:D11처럼

UNIQUE, 고유 목록이 펼쳐지는 방식과 옛 엑셀 대안

고유 목록은 언제 필요할까

판매 기록에서 ‘우리가 어느 지역에 팔았나’, 출장 내역에서 ‘다녀온 도시 목록’, 설문 응답에서 ‘나온 답의 종류’처럼 중복을 걷어 낸 목록이 필요한 순간이 많아요. 이 목록을 옆에 두고 COUNTIF나 SUMIF를 걸면 지역별 건수표, 품목별 합계표가 금방 만들어지고, 데이터 확인 목록(드롭다운)의 원본으로도 쓸 수 있어요. ‘중복된 항목 제거’ 메뉴와 달리 UNIQUE는 원본을 건드리지 않고, 원본에 새 값이 생기면 목록에도 저절로 추가돼요.

사용 방법

범위 칸에 1번, 정렬 선택에 2번, 뽑을 값 선택에 3번 표시가 붙은 화면

1단계범위와 정렬 고르기

  1. ① 고유 목록을 만들 범위를 적어요. 여러 열을 적으면 열 조합이 같은 행을 하나로 봐요.
  2. ② 원래 순서로 둘지, 가나다·숫자 순으로 정렬할지 골라요. 정렬을 고르면 SORT가 바깥에 씌워져요.
  3. ③ ‘딱 한 번만 나온 값’을 고르면 두 번 이상 나온 값은 아예 빼고 한 번뿐인 값만 남겨요.
빈칸 빼기와 개수 표시 체크에 4번, UNIQUE 수식 카드에 5번 표시가 붙은 화면

2단계옵션 켜고 수식 고르기

  1. ④ 빈칸 빼기는 FILTER로 빈 행을 먼저 걸러요. 개수 표시를 켜면 옆 칸에 넣을 COUNTIF 수식이 추가돼요.
  2. ⑤ 맨 위가 엑셀 2021·365용 UNIQUE예요. 아래로 고유 개수 수식과 옛 엑셀용 수식이 이어져요.

예제 데이터로 보는 결과

예제 판매 기록 10행에 각 옵션을 적용하면 이렇게 나와요. 원래 순서는 위에서부터 처음 나온 순서예요.

설정범위결과
원래 순서지역 B2:B11서울, 부산, 대구, 광주
오름차순제품 D2:D11노트북, 마우스, 모니터, 키보드
딱 한 번만 나온 값지역 B2:B11광주
딱 한 번만 나온 값담당자 C2:C11박도윤, 최하은, 정시우, 강지아, 조하준, 윤서아
개수 표시 (COUNTIF)지역4, 3, 2, 1

개수 수식의 S2#은 ‘S2에서 펼쳐진 결과 전체’를 가리키는 표시예요. UNIQUE를 S2에 넣었다는 가정으로 만들어서, 다른 칸에 넣었다면 그 주소로 바꿔 써요.

옛 엑셀용 수식의 원리

UNIQUE가 없는 버전용 수식은 한 칸씩 아래로 채우면서 ‘위에서 이미 나온 값’을 세요. S2 칸의 COUNTIF($S$1:S1, 원본)은 원본의 값마다 위쪽 결과에 몇 번 있었는지 셈해요. 아직 안 나온 값은 0이 되고, MATCH(0,…)가 그중 첫 번째 위치를 찾아 INDEX로 꺼내요. 한 칸 내려갈 때마다 위쪽 범위가 한 칸씩 늘어나서 같은 값이 다시 뽑히지 않아요.

옛 엑셀용 고유 목록 수식의 원리S2에 서울, S3에 부산이 이미 뽑혀 있을 때 S4의 COUNTIF는 원본 각 값이 위쪽 결과에 있으면 1, 없으면 0을 돌려줘요. 0이 처음 나오는 4번째 값 대구가 S4로 와요.S4 칸: 위에 이미 나온 값은 1, 아니면 0B 원본COUNTIF2서울13부산14서울15대구06서울17부산18광주09서울110대구011부산1S1지역 (제목)2서울3부산4대구MATCH(0, …)가첫 0의 위치 4를 찾고INDEX가 대구를 꺼내요
위에 이미 뽑힌 값은 1, 아직 안 뽑힌 값은 0이 되어 0인 첫 값이 다음 칸으로 와요.

결과를 어디에 둘까

UNIQUE 결과는 수식을 넣은 칸부터 아래로 펼쳐지고, 원본에 값이 늘면 펼쳐지는 길이도 늘어나요. 그래서 원본 표의 바로 아래보다는 원본 오른쪽의 빈 열이나 따로 만든 요약 시트가 안전해요. 결과가 원본 범위와 겹치면 자기 결과를 다시 읽는 순환 참조가 되고, 엑셀 표(Ctrl+T로 만든 표) 안에서는 펼쳐지는 수식을 쓸 수 없어 #SPILL!이 나요. 표 바깥의 빈 영역에 두세요.

주의할 점

더 궁금한 점

예제 엑셀에는 어떤 수식이 들어 있나요?

연습 데이터 옆 E열에 옛 엑셀용 지역 고유 목록과 F열에 그 지역 건수가 채워져 있고, 오른쪽에는 UNIQUE·SORT(UNIQUE) 수식과 지역·담당자 고유 개수 수식이 있어요.

고유한 값 개수만 알면 될 때는요?

둘째 카드의 SUMPRODUCT 수식은 모든 버전에서 개수만 바로 돌려줘요. 예제 지역 열이면 4, 담당자 열이면 8이에요.

UNIQUE로 중복 없는 목록 만들기

UNIQUE(범위, [열 기준], [한 번만])은 범위에서 중복을 뺀 값을 위에서부터 나온 순서대로 돌려줘요. 결과는 수식을 넣은 칸부터 아래로 펼쳐지고(동적 배열), 원본에 값이 추가되면 목록도 저절로 길어져요. 거래처 목록, 담당자 목록, 드롭다운에 쓸 항목 목록을 만들 때 가장 편한 방법이에요.

함께 쓰는 함수

여러 열을 기준으로

범위를 B2:D11처럼 여러 열로 주면 ‘행 전체’가 같은 경우만 중복으로 봐요. 지역과 제품이 모두 같은 행만 하나로 합치는 식이에요. 결과도 여러 열로 펼쳐져요.

UNIQUE가 없는 엑셀이라면

엑셀 2019 이하에서는 INDEX·MATCH·COUNTIF를 조합한 수식을 첫 칸(S2)에 넣고 아래로 채워요. 위 칸들(S$1:S1)에 아직 없는 값 중 첫 번째를 찾아오는 원리라서, 아래로 채울수록 다음 고유 값이 나와요. 예제 파일 E열에서 실제로 동작하는 모습을 볼 수 있어요. 개수만 필요하면 SUMPRODUCT(1/COUNTIF()) 방식의 고유 값 개수 수식이 모든 버전에서 동작해요.

파일 자체에서 중복 행을 지우고 싶다면 데이터 탭의 ‘중복된 항목 제거’를 쓰거나, 어떤 값이 중복인지 표시하려면 ‘중복 찾기 수식’ 도구를 쓰세요.

자주 묻는 질문

#SPILL! 오류가 나요.

결과가 펼쳐질 아래 칸에 이미 값이 있어서예요. 수식 아래쪽을 비워 두세요. 표(Ctrl+T) 안에서는 동적 배열이 펼쳐지지 않으니 표 바깥에 넣으세요.

대소문자를 구분하나요?

UNIQUE는 대소문자를 구분하지 않아요. ‘Apple’과 ‘apple’은 같은 값으로 봐요.

고유 목록으로 드롭다운을 만들 수 있나요?

돼요. UNIQUE를 S2에 두고 데이터 유효성 검사 원본에 =$S$2#을 넣으면 값이 늘어날 때 드롭다운도 함께 늘어나요.

함께 쓰면 좋은 도구