엑셀 순위 함수는 =RANK.EQ(B2,$B$2:$B$5,0)처럼 사용한다. B2의 값을 B2:B5 전체와 비교하며, 마지막 숫자 0은 큰 값부터 1등을 매긴다는 뜻이다. 같은 값에는 같은 순위를 부여하고 그다음 등수는 건너뛴다.
공동 2등이 두 명이면 다음은 4등이다. 오류가 아니라 두 사람이 2등과 3등 자리를 함께 차지한 결과이다. 먼저 공동 등수를 유지할지, 반드시 서로 다른 번호가 필요한지 정해야 한다.
이 글은 직접 만든 가상 점수표와 산술 검산을 사용한다. 실제 Excel 앱에서 실행한 결과 화면은 아니다. 공식 도움말의 적용 대상인 Microsoft 365용 Excel과 Excel 2024·2021·2019·2016, Mac용 Microsoft 365·Excel 2024·2021을 기준으로 설명한다.
엑셀 순위 함수 예제: 네 줄로 확인한다
비교 범위는 고정하고, 순위를 구할 셀만 행마다 바꾼다. 빈 시트의 A1:D1에 항목, 점수, 공동 순위, 평균 순위를 적고, 2행부터 다음 표를 채운다. A·B열은 입력값이며 C·D열은 아래 수식을 넣었을 때의 예상값이다.
| A열 항목 | B열 점수 | C열 공동 순위 | D열 평균 순위 |
|---|---|---|---|
| 과제A | 96 | 1 | 1 |
| 과제B | 84 | 2 | 2.5 |
| 과제C | 84 | 2 | 2.5 |
| 과제D | 72 | 4 | 4 |
- C2에
=RANK.EQ(B2,$B$2:$B$5,0)을 입력한다. 예상값은 1이다. - C2의 수식을 C5까지 복사한다. 예상값은 위에서부터 1, 2, 2, 4이다.
- C5의 수식 입력줄을 확인한다. 첫 인수는 B5, 비교 범위는 계속
$B$2:$B$5여야 한다. - D2에
=RANK.AVG(B2,$B$2:$B$5,0)을 넣고 D5까지 복사한다. 예상값은 1, 2.5, 2.5, 4이다.
검산은 간단하다. 84보다 큰 점수는 96 하나뿐이므로 84의 공동 순위는 2이다. 72보다 큰 데이터는 세 개이므로 72는 4등이다. RANK.EQ 공식 설명도 동점 다음 순위가 건너뛰는 점을 명시한다.
수식 복사가 익숙하지 않으면 엑셀 자동채우기를 함께 확인한다. $를 빼면 마지막 행의 비교 범위가 B5:B8처럼 밀려, 같은 점수라도 서로 다른 집단과 비교하게 된다.
값 하나를 바꾸고 되돌려 수식 복사를 확인한다
가상 점수표에서 B3만 84에서 98로 바꾸면 C2:C5의 예상 순위는 2, 1, 3, 4이다. D열 평균 순위도 동점이 없어져 같은 값이 된다. 점수를 바꾼 B3의 행이 1등이 되고, 기존 96은 2등으로 내려가는지 함께 확인한다.
확인한 뒤 B3을 다시 84로 되돌린다. C열은 1, 2, 2, 4, D열은 1, 2.5, 2.5, 4로 돌아와야 한다. 순위 열의 숫자를 직접 고쳐 맞추지 않는다. 예상과 다르면 C3의 첫 인수가 B3인지, 모든 행의 비교 범위가 $B$2:$B$5인지 확인한다. 이는 공식 함수 규칙으로 검산한 예상값이며 앱 실행 시험 결과가 아니다.
공동 등수와 평균 순위는 쓰임이 다르다
RANK.AVG도 동점을 없애는 함수는 아니다. 앞선 두 개의 84는 2등과 3등 자리의 평균인 (2+3)/2=2.5를 함께 받는다. 소수 순위가 나왔다고 반올림하면 함수가 담은 의미를 바꾸게 된다.
- 공동 수상자처럼 같은 등수를 유지한다면 RANK.EQ를 쓴다.
- 동점이 차지한 자리의 평균값이 필요하다면 RANK.AVG를 쓴다.
- 목록의 위에서부터 서로 다른 번호가 필요하다면 동점 처리 규칙을 별도로 정한다.
Microsoft의 RANK.AVG 안내는 같은 값에 평균 순위를 반환한다고 설명한다. 평균 순위는 서로 다른 등수를 만들어 주는 기능이 아니며, 이 예제에서 72의 순위는 여전히 4이다.
기존 파일에서 RANK를 보더라도 바로 잘못된 수식으로 판단하지 않는다. 새 시트는 동점 처리 의도가 드러나는 함수 이름을 선택하고, 다른 사람이 만든 시트는 사용 목적과 결과부터 대조한다.
작은 기록이 1등이라면 마지막 인수를 바꾼다
달리기 시간이나 불량 건수처럼 작을수록 좋은 값은 마지막 인수에 1을 쓴다. 순위를 구하려고 원본 행을 먼저 정렬할 필요는 없다.
별도 연습에서 B2:B5에 18, 15, 15, 21을 넣는다. C2에 =RANK.EQ(B2,$B$2:$B$5,1)을 입력해 아래로 복사하면 예상 순위는 3, 1, 1, 4이다. 15 두 개가 공동 1등이며, 그다음 18은 3등이다.
반대로 마지막 인수를 생략하거나 0으로 두면 21이 1등이 된다. 단순히 ‘정렬 방향’이라고 외우기보다 무엇이 좋은 값인지 수식 옆에 적는 편이 확인하기 쉽다. 시간은 초 단위 숫자와 실제 시간값을 섞지 않고 같은 단위로 입력한다.
행의 배치를 바꾸는 작업은 데이터 정렬이다. 순위 열을 계산하는 것과 이름·점수의 행을 재배치하는 것은 별도 작업이며, 정렬할 때는 관련 열을 함께 선택해야 한다.
엑셀 순위 함수에서 동점에 다른 번호를 주려면?
먼저 나온 행을 앞번호로 두겠다는 규칙이 있을 때만 COUNTIF를 조합한다. 같은 점수의 우열을 새로 판정하는 공식이 아니다. 접수번호나 보조 점수로 동점을 가려야 한다면 그 기준을 먼저 마련한다.
첫 점수표의 E2에 다음 수식을 넣고 E5까지 복사한다.
=RANK.EQ(B2,$B$2:$B$5,0)+COUNTIF($B$2:B2,B2)-1
예상값은 1, 2, 3, 4이다. COUNTIF는 현재 행까지 같은 점수가 몇 번 나왔는지 센다. 첫 번째 84는 1회라 기존 순위에 0을 더하고, 두 번째 84는 2회라 1을 더한다. 공식 COUNTIF 도움말의 범위와 조건 개념을 적용한 조합이다.
이때 $B$2:B2의 시작은 고정, 끝은 현재 행까지 확장된다. RANK.EQ의 전체 범위와 달리 끝까지 고정하면 두 84에 같은 값이 더해져 목적을 달성하지 못한다. 조건 개수 세기 자체는 COUNTIF 기본 사용법에서 이어 볼 수 있다.
과제 B와 C의 행 순서를 바꾸면 먼저 놓인 항목이 2번을 받는다. 따라서 이 번호를 성적의 공정한 우열이나 영구 식별번호로 쓰면 안 된다. 원본 순서를 보존한 사본에서 용도에 맞게 사용한다.
결과가 이상하면 값·범위·규칙 순으로 확인한다
엑셀 순위 함수가 기대와 다르더라도 동점부터 없애지 않는다. 다음 순서로 원인을 좁힌다.
- 숫자 확인:
84점처럼 단위가 붙은 문자가 아닌지 확인한다. RANK.EQ는 참조 범위의 숫자가 아닌 값을 무시한다. 문자 숫자 변환 전에 원본을 남긴다. - 범위 확인: 첫 행과 마지막 행의 비교 주소가 같은지, 새로 추가한 데이터가 범위 밖에 있는지 본다.
- 방향 확인: 점수는 큰 값, 시간 기록은 작은 값을 1등으로 정했는지 대조한다.
- 동점 규칙 확인: 공동 등수·평균 순위·행 순서 번호 중 무엇이 필요한지 다시 확인한다.
필터로 일부 행을 가려도 이 수식의 비교 범위가 자동으로 ‘보이는 행만’으로 바뀌지는 않는다. 특정 집단의 순위가 목적이라면 그 집단만 비교하도록 범위를 설계해야 한다. 숫자가 같아 보이는 경우에는 표시 자릿수 뒤의 실제 소수값도 확인한다.
엑셀 순위 함수를 마치면 첫 행 하나만 보지 말고 최고값·동점 두 행·최저값을 함께 대조한다. 원하는 규칙과 비교 집단이 같아야 같은 순위표라고 할 수 있다.