- 최초 작성일: 2005-06-08
- 최종 수정일: 2026-09-26
- 조회수: 21 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 배열수식을 활용한 중복이름 추려내기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
//질문 하나 좌측의 중복된 이름들을 우측에 1개씩만 나타나게 하는 함수식을 알고 싶습니다. 예를들어 좌측표에 여러개 있는 '홍길동'을 우측표에 대표적으로 1개만 나타나게끔요…
배열수식을 활용한 중복이름 추려내기
핵심 요약
- 중복된 이름 가운데 유일한 항목만 추려내는 문제를 다룹니다.
- 고급 필터나 VBA 대신 배열 수식을 사용합니다.
- INDEX, SMALL, MATCH, ROW, INDIRECT를 결합한 수식을 분석합니다.
중복 이름 예제
| 이름 | 이름 | |
|---|---|---|
| 홍길동 | =수식을 알려주세요? | |
| 김이박 | =수식을 알려주세요? | |
| 허 준 | =수식을 알려주세요? | |
| 장길산 | =수식을 알려주세요? | |
| 임꺽정 | =수식을 알려주세요? | |
| 김이박 | =수식을 알려주세요? | |
| 홍길동 | =수식을 알려주세요? | |
| 장길산 | =수식을 알려주세요? | |
| 허 준 | =수식을 알려주세요? | |
| 장길산 | =수식을 알려주세요? | |
| 허 준 | =수식을 알려주세요? | |
| 김이박 | =수식을 알려주세요? | |
| 임꺽정 | =수식을 알려주세요? | |
| 홍길동 | =수식을 알려주세요? | |
| 홍길동 | =수식을 알려주세요? | |
| 허 준 | =수식을 알려주세요? | |
| 장길산 | =수식을 알려주세요? | |
| 임꺽정 | ||
| 허 준 | ||
| 장길산 | ||
| 허 준 | ||
| 임꺽정 | ||
| 김이박 | ||
| 홍길동 |
배열 수식으로 유일한 이름 추출하기
여러 개의 중복된 데이터 중에서 유일한 항목만을 추려내는 가장 간편한 방법은
'고급 필터' 기능을 이용하는 것입니다. 작업 순서가 머리 속에 착착 본능적으로 떠오르지 않는 초보님들은 다음 게시물을 먼저 살펴보고 오시기 바랍니다.
http://www.iexceller.com/FAQ(Part1).asp
보신 것처럼 고급 필터뿐만 아니라 VBA를 사용해서도 유일한 아이템을 추출할 수 있습니다.
이번 시간에는 방법을 조금 달리해서… 배열 수식을 사용하여 중복되지 않는 이름들만 추려내 보도록 하겠습니다. 수식이 조금 깁니다. 정신 바짝 차리고 보시기 바랍니다. ^^ 우선 다음 버튼을 눌러 예제를 살펴보고 오세요!
잘 보셨나요?
사용된 배열 수식 살펴보기
중복되지 않은 유일한 이름을 추출하기 위해 사용된 수식은 이렇습니다.
{=IF(ISERR(INDEX(A2:A25,SMALL(IF(MATCH(MyRange,MyRange,0)=
ROW(INDIRECT("1:"&ROWS(MyRange))),MATCH(MyRange,MyRange,0),""),
ROW(INDIRECT("1:"&ROWS(MyRange)))))),"",INDEX(A2:A25,SMALL(IF(MATCH(MyRange,MyRange,0)=
ROW(INDIRECT("1:"&ROWS(MyRange))),MATCH(MyRange,MyRange,0),""),
ROW(INDIRECT("1:"&ROWS(MyRange))))))}실로 무시무시한 수식이 아닐 수 없습니다! (^^) 위의 수식은 에러가 발생할 경우, 에러값을 표시하지 않기 위해 IsErr 함수를 한번더 중첩해서 사용하였기 때문에 더욱 복잡해 보이는 것입니다. 위 수식에서 꼭 필요한 부분만 축약하면 이렇게 할 수 있습니다.
{=INDEX(A2:A25,SMALL(IF(MATCH(MyRange,MyRange,0)=
ROW(INDIRECT("1:"&ROWS(MyRange))),MATCH(MyRange,MyRange,0),""),
ROW(INDIRECT("1:"&ROWS(MyRange)))))}
수식 자체는 무지하게 길고 복잡한데… 자세히 들여다보니 우리가 잘 모르는 생소한 함수는 거의 없지요? "MyRange"라는 것은 Workplace 시트의 A열에 있는 원본 데이터를 사전에 '이름 정의' 해 둔 것입니다.
수식을 안쪽부터 토막내어 분석해 보시고, 잘 이해가 안되는 부분이 있으시면 질문주시기 바랍니다.
다음 시간에…
마치며
고급 필터나 VBA 대신 배열 수식을 이용하여 중복 데이터에서 유일한 이름만 추출하는 방법을 살펴보았습니다. INDEX, SMALL, MATCH 등의 함수가 결합된 수식의 구조를 단계별로 확인할 수 있습니다.