엑셀 순위 매기기 — RANK 함수, 자주 하는 실수부터 짚고 시작하기
최종 업데이트 2026-07-20
RANK 함수 자체는 간단하지만, 실무에서 순위표를 만들다 보면 늘 비슷한 지점에서 막힙니다. 함수 구조를 설명하기 전에, 먼저 실무자들이 가장 자주 저지르는 실수 세 가지부터 짚고 시작하겠습니다.
흔한 실수 1 — 비교 범위에 $를 안 붙임
RANK(A2, A2:A6, 0)처럼 비교 범위를 절대참조($) 없이 입력한 뒤, 이 수식을 아래로 드래그해서 복사하면 범위가 A3:A7, A4:A8처럼 같이 밀려버립니다. 그러면 각 행마다 비교 대상 범위가 달라져 순위가 완전히 엉킵니다. 비교 범위는 항상 $A$2:$A$6처럼 고정해야 합니다.
흔한 실수 2 — 오름차순·내림차순 옵션을 빠뜨림
RANK의 세 번째 인수(정렬방식)를 생략하면 기본값 0(내림차순, 값이 클수록 1등)으로 처리됩니다. 그런데 '순위가 낮을수록 좋은 데이터'(예: 완주 시간, 오류 건수)에서는 반대로 1을 넣어 오름차순(값이 작을수록 1등)으로 바꿔야 하는데, 이를 놓쳐 순위가 거꾸로 나오는 실수가 흔합니다.
흔한 실수 3 — 동점 처리 방식을 잘못 이해함
RANK는 동점자에게 같은 순위를 준 뒤, 그다음 순위를 '건너뜁니다'. 예를 들어 공동 1위가 2명이면 그다음 사람은 2위가 아니라 3위가 됩니다. 이걸 모르고 '순위가 하나 비어 있다'고 착각해 데이터를 잘못 고치는 경우가 종종 있습니다.
실제 데이터로 확인하기
| 담당자 | 매출 |
|---|---|
| 김도윤 | 3,200,000 |
| 이서연 | 4,100,000 |
| 박준서 | 4,100,000 |
| 최민준 | 2,800,000 |
| 정예은 | 3,700,000 |
B2:B6에 위 매출 데이터가 있다고 가정합니다. 이서연과 박준서는 매출이 4,100,000원으로 동일합니다. 이 표에 순위 함수를 적용하면 다음과 같은 결과가 나와야 합니다.
=RANK(B2, $B$2:$B$6, 0)
| 담당자 | 매출 | RANK / RANK.EQ 결과 | RANK.AVG 결과 |
|---|---|---|---|
| 김도윤 | 3,200,000 | 4위 | 4 |
| 이서연 | 4,100,000 | 1위(공동) | 1.5 |
| 박준서 | 4,100,000 | 1위(공동) | 1.5 |
| 최민준 | 2,800,000 | 5위 | 5 |
| 정예은 | 3,700,000 | 3위 | 3 |
RANK와 RANK.EQ는 동점자 모두에게 1위를 주고, 그다음 순위(정예은)는 2위가 아니라 3위로 건너뜁니다. 반면 RANK.AVG는 동점자가 차지할 순위(1위와 2위)의 평균을 내어 두 사람 모두에게 1.5를 부여합니다.
RANK vs RANK.EQ vs RANK.AVG
| 함수 | 동점 처리 방식 | 비고 |
|---|---|---|
| RANK | 동점자는 같은 순위, 다음 순위는 건너뜀 | 구버전 호환용으로 남아있는 이전 이름 |
| RANK.EQ | RANK와 결과가 완전히 동일 | 엑셀 2010 이후 RANK를 대체하는 공식 이름 |
| RANK.AVG | 동점자에게 순위의 평균값을 부여 | 석차를 소수로 세밀하게 나누고 싶을 때 |
기본 구조와 옵션 정리
=RANK.EQ(내값, 전체범위, 정렬방식)
- •내값: 순위를 구할 셀 (예: B2)
- •전체범위: 비교 대상 전체, 반드시 $로 고정 ($B$2:$B$6)
- •정렬방식: 0 또는 생략 = 내림차순(클수록 1등), 1 = 오름차순(작을수록 1등)
새 문서에서는 RANK보다 RANK.EQ를 쓰는 것을 권장합니다. 기능은 완전히 동일하지만 RANK는 마이크로소프트가 '이전 버전 호환용'으로 분류해 두었고, 향후 버전에서 지원이 줄어들 가능성이 있습니다.
드래그로 아래 행에 채울 때 체크리스트
- 11단계 — B2 셀에 =RANK.EQ(B2, $B$2:$B$6, 0) 를 입력합니다.
- 22단계 — B2 셀을 선택한 상태에서 채우기 핸들(셀 오른쪽 아래 작은 점)을 더블클릭하거나 B6까지 드래그합니다.
- 33단계 — 각 행의 수식을 하나씩 클릭해 비교범위가 여전히 $B$2:$B$6로 고정되어 있는지 확인합니다. 만약 B3:B7, B4:B8처럼 범위가 밀려 있다면 $ 기호가 빠진 것이므로 처음부터 다시 입력합니다.
- 44단계 — 동점자가 있는 행끼리 결과가 같은 순위로 나오는지, 그다음 순위가 올바르게 하나 건너뛰었는지 확인합니다.
참고 — 순위를 백분율로 보고 싶다면
등수 대신 '상위 몇 퍼센트에 속하는지'를 보여주고 싶다면 PERCENTRANK.INC 함수를 함께 활용할 수 있습니다. 예를 들어 이서연·박준서처럼 최고 매출자는 결과가 1(상위 100%, 즉 1등)에 가깝게 나오고, 최민준처럼 가장 낮은 매출자는 0에 가까운 값이 나옵니다. 순위와 백분율을 함께 보여주면 인원수가 달라져도 상대적 위치를 비교하기 쉬워집니다.
=PERCENTRANK.INC($B$2:$B$6, B2)
- •부서·팀별로 나누어 순위를 매겨야 한다면 RANK 계열 함수만으로는 부족하고, SUMPRODUCT나 COUNTIFS를 곱한 조건부 순위 공식을 따로 만들어야 합니다.
- •정렬(오름차순·내림차순) 메뉴로 화면 순서만 바꾸는 것과, RANK로 순위 '값'을 셀에 남기는 것은 전혀 다릅니다. 필터·정렬을 다시 걸어도 원본 순서가 흔들리지 않게 하려면 RANK 값을 별도 열에 반드시 저장해두세요.