오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 중복값 제거 후 고유값 개수 카운트 공식

엑셀 중복값 제거 후 고유값 개수 구하는 공식에 사용된 함수 및 동작원리와 실전 예제를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 11. 11. 22:09
URL 복사
메모 남기기 : (66)

엑셀 중복값 제거 후 고유값 개수 카운트 공식

중복값 제거 후 고유값 개수 카운트 목차 바로가기
함수 공식
=SUMPRODUCT(1/COUNTIF(범위,범위))
' 범위에 빈칸이 있을 경우 #DIV/0! 오류를 반환하므로, 그럴 경우 아래 적어드린 변환 공식을 사용합니다.

오피스 365 사용자

=COUNTA(UNIQUE(범위))
' SUMPRODUCT 공식보다 더욱 빠르게 동작하며, 다중조건을 만족하는 고유값의 개수를 셀 수 있습니다.
인수 설명
인수 설명
범위 중복값 제거 후 고유값 개수를 셀 범위입니다.
사용 예제
중복값 제거 후 고유값 개수 세기 공식 예제
범위에서 중복값을 제거한 고유값 개수를 카운트 합니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [엑셀공식] 중복값 제거 후 고유값 개수 세기
    예제파일

사용된 기초 함수

엑셀 중복값 제거 후 고유값 개수 세기 공식 알아보기

공식 설명

아래 상황을 가정하겠습니다. 총 20명의 직원이 있는데, 각 직원명에서 '성'의 고유 개수를 세고 싶습니다. 그럴 경우 아래 공식을 사용할 수 있습니다.

중복값 제거 고유값 개수 예제 1
직원명에서 '성'의 고유 개수를 계산합니다.

또는 이런 상황에서도 사용할 수 있습니다. 아래와 같이 2000여개가 넘는 거래목록이 있는데, 이 거래목록에는 여러 거래처가 중복입력되어 있습니다. 이럴 경우, 중복값을 제거한 고유 거래처의 개수를 계산할 때에도 아래 공식을 사용할 수 있습니다.

거래처 고유값 개수 구하기 예제
판매 대장에서 실제 거래된 거래처의 고유값 개수를 카운트합니다.
공식의 동작원리
  1. COUNTIF 함수를 사용하여 각 항목별 개수를 계산합니다.
    = COUNTIF({김, 이, 김, 박, 이, 김}, {김, 이, 김, 박, 이, 김})
    = {3, 2, 3, 1, 2, 3}
  2. 반환된 배열이 분모로 입력되면서, SUMPRODUCT(1/{배열})이 계산됩니다.
    = SUMPRODUCT(1/COUNTIF(범위,범위))
    = SUMPRODUCT(1/{3, 2, 3, 1, 2, 3}}
    = 1/3 + 1/2 + 1/3 + 1/1 + 1/2 + 1/3
    = 3
  3. 만약 범위에 빈칸이 있을경우, 분모에 '0'이 입력되어 해당 공식은 #DIV/0! 오류를 반환합니다.
    = SUMPRODUCT(1/{3, 2, 3, "", 2, 3}}
    = 1/3 + 1/2 + 1/3 + #DIV/0! + 1/2 + 1/3
    = #DIV/0!
  4. 따라서 범위에 빈칸이 있을 경우 변환공식을 사용하여 문제를 해결합니다.
    = SUMPRODUCT(({3, 2, 3, "", 2, 3}}<>"")/COUNTIF({김, 이, 김, , 이, 김},{김, 이, 김, , 이, 김}&""))
    = SUMPRODUCT( {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE}/{3, 2, 3, 0, 2, 3}
    = SUMPRODUCT( {1, 1, 1, 0, 1, 1}/{3, 2, 3, 0, 2, 3} )
    = 1/3 + 1/2 + 1/3 + 0 + 1/2 + 1/3
    = 2

자주묻는질문

범위에 빈칸이 있는경우, #DIV/0! 오류가 반환됩니다.

중복값 제거 후 고유값의 개수를 셀 범위안에 빈칸이 있을 경우, 공식은 #DIV/0!를 반환합니다. 그럴경우, 아래 변환공식을 사용하여 문제를 해결합니다.

범위에 빈칸이 있는 경우

=SUMPRODUCT(1/COUNTIF(범위,범위&""))
' 범위에 빈칸이 있을 경우 사용합니다. 단, 빈칸도 고유값으로 계산됩니다.
' 예) {김, 김, 이, , 이} ==> 3을 반환합니다.

범위에 빈칸이 있고 빈칸을 고유값 개수에서 제외하고 싶을 경우

=SUMPRODUCT((범위<>"")/COUNTIF(범위,범위&""))
' 범위에 빈칸이 있고, 빈칸이 고유값에 포함되지 않아야 할 경우 사용합니다.
' 예) {김, 김, 이, , 이} ==> 2를 반환합니다.
댓글 66
4.9 (36개 평가)
귀를기울이면
귀를기울이면 2020.04.24 11:21
감사합니다~
로돌릭
로돌릭 2020.04.26 09:49
감사합니다!!!
김혜영
김혜영 2020.05.04 09:57
감사합니다
쪼니홍이
쪼니홍이 2020.05.04 14:27
질문드립니다~ '공식의 동작원리' ④의 두번째 단락에서 = SUMPRODUCT( {TRUE, TRUE, TRUE, FALSE, TRUE, TRUE}/{3, 2, 3, 0, 2, 3}) 중 {3, 2, 3, 0, 2, 3}의 4번째 인수 '0'이 아니라 '1' 아닌가요?
지속남
지속남 2020.05.05 21:06
감사합니다!
엑셀정
엑셀정 2020.05.06 19:25
감사합니다.
only****
only**** 2020.05.24 12:26
또 하나 배워갑니다. 정말 감사합니다. ^^
뾰땅
뾰땅 2020.07.10 10:18
중복갑 제거 후 카운트 관련 =COUNTA(UNIQUE(범위)) 이 함수를 사용할떄 다중조건을 어떻게 적용 시키나요?
오빠두엑셀
오빠두엑셀 작성자 2020.07.10 11:16
안녕하세요? :) 제가 설명을 잘못 적어드렸습니다. 위 공식은 다중조건이 아니라 넓은 범위에서 고유값을 추출할 수 있습니다. 조건을 만족하는 고유값 개수를 세려면 아래 공식을 사용해보시겠어요?^^
=UNIQUE(FILTER(범위,(범위=조건1)*(범위=조건2)...))
di4jf2
di4jf2 2020.11.10 11:40
게시물이 정말 유익합니다! 질문 하나 드립니다. UNIQUE, FILTER 수식을 사용하지 않고 다중조건을 만족하는 고유값의 개수를 세는 공식이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2020.11.10 12:35
=SUMPRODUCT(1/COUNTIF(범위,범위)) 공식을 =SUMPRODUCT(1/COUNTIFS(범위1,범위1,범위2,범위2)) 로 사용해보세요 ^^
손손손
손손손 2021.04.22 18:17
안녕하세요! 항상 많은 도움 받고 있습니다! 저 해당 조건을 사용할 때 값이 없는 경우도 1로 카운트를 하는 경우가 있는데... 혹시 해결가능한 방법이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2021.04.24 17:17
음.. 공식을 아래 처럼 수정해보시겠어요? =SUMPRODUCT(1/(COUNTIFS(범위1,범위1,범위2,범위2)*(범위1<>"")*(범위2<>""))
러재
러재 2021.06.01 16:39
아 그런데.. 제가 돌리는 자료는 워낙 데이터가 방대하다보니... 너무 느려서 안돌아가네요. 왜 값이 없으면 1로 카운트되는지... 궁금하긴 하지만 일단 고민하다가 IF문을 써서 해당카운트에 개수가 0이면 0, 0아니면 아래 수식으로 계산하는 방식을 쓰고 있습니다. 답변 감사합니다. ^^ if(countifs(범위,범위1=조건1,범위2=조건2 )=0 , 0,Counta(unique(filter(범위,(범위1=조건1)*(범위2=조건2)) 
시훈세은파
시훈세은파 2022.10.18 11:17
엑셀 중복값 제거후 고유값 개수 계산시 빈셀도 1로 값이 나오던데 어떻게 해야 될까요? 아래 방법으로 해도 해결이 안되네요
손진성
손진성 2020.12.01 18:44
좋은 정보 감사합니다. 추가적인 질문이 있습니다. 만약 일자별 근무조별 근무인원은 어떻게 구할 수 있을까요? 중복 값 제거도 필요하구요. 감사합니다.
오빠두엑셀
오빠두엑셀 작성자 2020.12.03 01:54
아래 공식을 사용해보세요. =SUMPRODUCT(1/COUNTIFS(범위1,범위1,범위2,범위2)) 로 사용해보세요 ^^
젝스텔라
젝스텔라 2020.12.02 12:19
정말 많이 도움 됐습니다~ 감사드리며 =COUNTA(UNIQUE(범위)) '2020.12.01에 해당하는' 이라는 조건을 추가 반영하고 싶은데 어떻게 하면 될까요??
오빠두엑셀
오빠두엑셀 작성자 2020.12.03 01:57
안녕하세요. 아래 수식을 사용해보세요.
=UNIQUE(FILTER(전체범위,날짜=DATE(2020,12,1)))
레아
레아 2022.01.13 00:01
날짜를 fromto 조건으로 할 때는 어떻게 해야 할까요? C열에 날짜가 있고, 카운트할 값은 D열에 있습니다. 매월1일에서 말일까지 데이터 중 중복을 제외한 고유 값을 카운트하려고 하는데 어떻게 구할 수 있을까요? 2016 버전을 사용하고 있어, unique, xfilter 함수를 추가했습니다.