엑셀 순위 함수 RANK.EQ 오류 해결과 중복값 처리법

엑셀 순위 함수 RANK.EQ 사용법과 중복값 처리, 오름차순 설정 방법을 상세히 알아보세요. #N/A, #REF 등 흔한 오류 해결 방법과 실무 활용 팁까지 한 번에 정리했습니다.

엑셀 순위 함수의 종류와 차이점

엑셀에서 제공하는 순위 함수는 크게 세 가지입니다.

RANK 함수는 엑셀의 기본 순위 함수로 오래 전부터 사용되어 왔습니다. 하지만 엑셀 2010 이후부터는 호환성을 위해 남아있을 뿐, 새로운 버전에서는 RANK.EQ 함수RANK.AVG 함수를 권장합니다.

RANK.EQ 함수는 동일한 값이 여러 개 있을 때 가장 높은 순위를 부여합니다. 예를 들어 90점이 2명이고 이들이 공동 2등이라면, 두 사람 모두에게 2등을 부여하고 다음 순위는 4등이 됩니다.

RANK.AVG 함수는 동일한 값에 평균 순위를 부여합니다. 같은 예시에서 2등과 3등의 평균인 2.5등을 두 사람 모두에게 부여합니다.


RANK.EQ 함수의 기본 사용법

RANK.EQ 함수의 기본 구문은 다음과 같습니다.

=RANK.EQ(number, ref, [order])

number는 순위를 알고 싶은 값입니다. 보통 셀 참조(예: B2)를 사용합니다.

ref는 순위를 비교할 전체 데이터 범위입니다. 절대 참조(B$2: B$10)를 사용해야 수식을 복사할 때 범위가 고정됩니다.

order는 정렬 순서를 지정합니다. 0 또는 생략하면 내림차순(큰 값이 1등), 1을 입력하면 오름차순(작은 값이 1등)으로 순위를 매깁니다.

실제 사용 예시를 보겠습니다. A열에 이름, B열에 점수가 있다면 C2 셀에 =RANK.EQ(B2,$B$2:$B$10,0)을 입력하고 아래로 드래그하면 각 학생의 순위가 자동으로 계산됩니다.


오름차순 순위 설정 방법

오름차순 순위는 작은 값이 높은 순위를 받는 방식입니다. 골프 타수, 생산 비용, 에러 발생 횟수처럼 낮을수록 좋은 데이터에 사용합니다.

오름차순으로 순위를 매기려면 RANK.EQ 함수의 세 번째 인수에 1을 입력하면 됩니다.

=RANK.EQ(B2,$B$2:$B$10,1)

이렇게 하면 가장 작은 값이 1등, 가장 큰 값이 꼴등이 됩니다. 반대로 내림차순(큰 값이 1등)으로 하려면 0을 입력하거나 세 번째 인수를 생략하면 됩니다.

실무에서는 매출액은 내림차순, 불량률은 오름차순처럼 데이터 특성에 맞게 선택해야 정확한 분석이 가능합니다.


중복값이 있을 때 순위 처리

동일한 값이 여러 개 있을 때 RANK.EQ 함수는 같은 순위를 부여하고 다음 순위를 건너뜁니다.

예를 들어 점수가 95, 90, 90, 85, 80점인 경우:

  • 95점: 1등
  • 90점: 2등 (두 명 모두)
  • 85점: 4등 (3등은 건너뜀)
  • 80점: 5등

이런 방식이 불편하다면 RANK.AVG 함수를 사용하세요. 위 예시에서 90점을 받은 두 학생은 2.5등을 받게 됩니다.

중복값에 서로 다른 순위를 부여하고 싶다면 COUNTIFS 함수와 조합해야 합니다.

=RANK.EQ(B2,$B$2:$B$10,0)+COUNTIFS($B$2:B2,B2)-1

이 수식은 같은 점수가 여러 번 나타날 때 데이터 입력 순서대로 순번을 부여합니다.


RANK.EQ 함수의 흔한 오류와 해결법

#N/A 오류는 순위를 매기려는 값이 비교 범위 안에 없을 때 발생합니다. 수식에서 number가 ref 범위 밖에 있는지 확인하세요. 특히 필터를 적용했거나 숨겨진 행이 있을 때 이런 오류가 자주 발생합니다.

#REF! 오류는 참조 범위가 잘못되었을 때 나타납니다. 행이나 열을 삭제해서 참조가 깨진 경우가 대부분입니다. 수식을 다시 작성하거나 이름 정의 기능을 활용하면 예방할 수 있습니다.

#VALUE! 오류는 텍스트나 빈 셀이 포함된 범위에서 순위를 계산할 때 발생합니다. 데이터 범위에 숫자만 있는지 확인하고, 필요하다면 ISNUMBER 함수로 검증하세요.

절대 참조를 빼먹는 실수도 흔합니다. 수식을 복사할 때 범위가 함께 움직이면 순위가 엉망이 됩니다. ref 범위에는 반드시 $B$2:$B$10처럼 달러 기호를 붙여야 합니다.


조건부 순위 매기기

특정 조건을 만족하는 데이터만 순위를 매기고 싶을 때가 있습니다. 예를 들어 부서별로 따로 순위를 매기거나, 특정 기간의 데이터만 순위를 계산하는 경우입니다.

COUNTIFS 함수와 조합하면 조건부 순위를 만들 수 있습니다.

=COUNTIFS($C$2:$C$10,C2,$B$2:$B$10,">"&B2)+1

이 수식은 같은 부서(C열) 내에서 자신보다 점수가 높은 사람의 수를 세고 1을 더해 순위를 계산합니다.

더 복잡한 조건이 필요하다면 SUMPRODUCT 함수를 활용할 수 있습니다. 여러 조건을 AND나 OR로 결합해 정교한 순위 계산이 가능합니다.


동점자 처리를 위한 고급 기법

실무에서는 동점자에게 같은 순위를 주되, 다음 순위를 건너뛰지 않게 만들어야 할 때가 있습니다.

=RANK.EQ(B2,$B$2:$B$10,0)-COUNTIF($B$2:B1,B2)

이 수식을 사용하면 95, 90, 90, 85점이 1, 2, 2, 3등으로 표시됩니다.

또한 보조 열을 추가해서 원래 순위와 일련번호를 결합하는 방법도 있습니다. D열에 =C2&"."&ROW()-1을 입력하면 2.1, 2.2처럼 구분이 가능합니다.

엑셀 2021 이상이나 Microsoft 365를 사용한다면 SORTBY 함수로 더 쉽게 처리할 수 있습니다. 여러 기준으로 정렬하고 순번을 자동으로 부여하는 것이 가능합니다.


순위 함수 활용 실전 팁

피벗 테이블과 결합하면 부서별, 월별 순위를 동적으로 분석할 수 있습니다. 계산 필드에 RANK 함수를 적용하면 자동으로 업데이트되는 순위 보고서를 만들 수 있습니다.

조건부 서식을 활용하면 순위에 따라 자동으로 색상이 바뀌는 시각화 효과를 낼 수 있습니다. 1-3등은 금색, 4-6등은 은색으로 표시하면 한눈에 파악이 쉽습니다.

데이터 유효성 검사와 함께 사용하면 사용자가 오름차순/내림차순을 선택할 수 있는 인터랙티브 시트를 만들 수 있습니다. 드롭다운에서 정렬 방식을 선택하면 순위가 자동으로 재계산되도록 설정하세요.

대량 데이터에서는 배열 수식이나 SEQUENCE 함수를 활용하면 처리 속도가 빨라집니다. 엑셀이 느려진다면 계산 방식을 수동으로 바꾸고 필요할 때만 새로고침하는 것도 방법입니다.


퍼센타일 순위로 변환하기

때로는 절대 순위보다 상대적 위치를 표시하는 것이 유용합니다. 100명 중 15등이라는 것보다 상위 15%라고 표현하는 것이 직관적입니다.

=RANK.EQ(B2,$B$2:$B$101,0)/COUNT($B$2:$B$101)*100

이 수식은 순위를 백분율로 변환합니다. 여기에 TEXT 함수를 결합하면 “상위 15%”처럼 보기 좋게 표시할 수 있습니다.

PERCENTRANK 함수를 직접 사용하는 방법도 있습니다. 이 함수는 0과 1 사이의 값을 반환하므로 100을 곱하면 백분율이 됩니다.


순위 함수 대신 정렬 사용하기

순위 함수는 원본 데이터 순서를 유지하면서 순위만 표시합니다. 하지만 실제로 데이터를 순위대로 정렬하고 싶다면 다른 방법이 더 효율적입니다.

데이터 탭의 정렬 기능을 사용하면 클릭 몇 번으로 원하는 순서대로 배열할 수 있습니다. 여러 기준으로 정렬(1차: 부서, 2차: 점수)도 가능합니다.

SORT 함수(엑셀 2021 이상)를 사용하면 원본을 건드리지 않고 정렬된 결과를 별도 영역에 표시할 수 있습니다. 원본 데이터가 바뀌면 자동으로 업데이트됩니다.

FILTER 함수와 SORT를 결합하면 조건을 만족하는 데이터만 추출해서 순위대로 보여주는 동적 보고서를 만들 수 있습니다.


순위 함수의 한계와 대안

RANK.EQ 함수는 단일 열의 값만 비교할 수 있습니다. 여러 과목의 총점으로 순위를 매기려면 먼저 총점 열을 만들어야 합니다.

문자 데이터는 순위를 매길 수 없습니다. A, B, C 같은 등급을 숫자로 변환(SWITCH 함수 활용)한 후 순위를 계산해야 합니다.

성능 이슈도 있습니다. 수만 개의 행에 RANK.EQ를 적용하면 엑셀이 느려질 수 있습니다. 이럴 때는 파워 쿼리를 활용하거나, 데이터베이스에서 순위를 계산한 후 엑셀로 가져오는 것이 좋습니다.

최신 버전 엑셀에서는 XLOOKUP과 SORT를 조합하거나, 동적 배열 함수를 활용하면 더 효율적인 순위 시스템을 구축할 수 있습니다.


엑셀 순위 함수는 데이터 분석의 기본이지만, 제대로 활용하려면 오류 처리와 중복값 관리 방법을 정확히 알아야 합니다. RANK.EQ 함수의 세 가지 인수를 정확히 이해하고, 절대 참조와 오름차순/내림차순 설정을 상황에 맞게 적용하면 대부분의 순위 계산 업무를 해결할 수 있습니다. 복잡한 조건이 필요하다면 COUNTIFS나 SUMPRODUCT 함수와 결합하여 더욱 정교한 분석이 가능합니다.

댓글 남기기