기본 콘텐츠로 건너뛰기

글

라벨이 UNIQUE인 게시물 표시

[엑셀]UNIQUE 함수의 원리 — 중복 제거는 결국 집합(set) 만들기다

 고객 명단 5,000줄에서 실제 고객이 몇 명인지 세야 한다면, 가장 먼저 무엇을 해야 할까? 그냥 행 개수를 세면 안 된다. 같은 고객이 여러 번 주문했다면 이름이 여러 번 반복해서 나타날 것이기 때문이다. 이럴 때 필요한 것이 '중복 제거'이고, 엑셀에서는 UNIQUE 함수가 이 역할을 맡는다. 그런데 "중복을 제거한다"는 이 작업은, 사실 수학에서 아주 오래전부터 다뤄온 집합(set)이라는 개념과 정확히 같은 일이다. 집합이라는 개념부터 다시 떠올려보기 수학에서 집합은 "같은 원소가 두 번 들어갈 수 없는 모음"으로 정의된다. {사과, 사과, 바나나}라는 목록이 있어도, 이것을 집합으로 표현하면 {사과, 바나나}가 된다. 중복된 사과는 한 번만 존재하는 것으로 취급되기 때문이다. 엑셀의 고객 명단도 똑같다. "홍길동"이라는 이름이 열 번 등장하든 한 번 등장하든, 집합의 관점에서는 "홍길동"이라는 원소 하나로 취급되어야 실제 고객 수를 정확히 셀 수 있다. UNIQUE의 동작 원리 =UNIQUE(A2:A5000) 이 수식은 A2:A5000 범위를 위에서부터 훑으면서, 처음 등장하는 값은 결과에 포함시키고 이미 한 번 나온 값과 같은 값이 다시 나타나면 결과에서 제외하는 방식으로 동작한다. 결과는 스필로 펼쳐지므로, 원본 범위에 몇 개의 고유값이 있는지 미리 알 필요 없이 있는 그대로 결과가 아래로 채워진다. 실제 고객 수가 필요하다면 이 결과를 COUNTA로 한 번 더 감싸면 된다. =COUNTA(UNIQUE(A2:A5000)) UNIQUE와 COUNTIF, 같은 문제를 푸는 두 가지 접근 UNIQUE가 등장하기 전에는 중복 여부를 확인할 때 주로 COUNTIF를 사용했다. =COUNTIF(A:A,A2)>1 — A2와 같은 값이 A열에 2개 이상 있는지 '판정'만 해준다. 목록 자체를 만들어주지는 않는다. =UNIQUE(A2:A5000) — 중복...