- 최초 작성일: 2002-04-23
- 최종 수정일: 2026-09-29
- 조회수: 27 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 백분율 순위 구하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
오래간만에 새로운 함수 하나를 살펴 보도록 하겠습니다. 아래와 같은 테이블이 있다고 할 때, 개인별 상대 순위를 구해야 할 경우가 있습니다. 내신 등급을 구한다거나 회사에서 사원 평가를 해야 한다거나 하는 경우가 이에 해당되겠지요.
백분율 순위 구하기
핵심 요약
PERCENTRANK 함수를 사용하면 데이터 집합 내 특정 값의 상대적 순위를 백분율로 구할 수 있습니다.
- PERCENTRANK(array,x,significance) 형태로 사용합니다.
- RANK는 정수 순위를, PERCENTRANK는 백분율 순위를 구합니다.
- Index, Match 함수와 조합하면 더 융통성 있는 자료를 만들 수 있습니다.
오래간만에 새로운 함수 하나를 살펴 보도록 하겠습니다. 아래와 같은 테이블이 있다고 할 때, 개인별 상대 순위를 구해야 할 경우가 있습니다. 내신 등급을 구한다거나 회사에서 사원 평가를 해야 한다거나 하는 경우가 이에 해당되겠지요.
[표 1]
| 성 명 | 국어 | 영어 | 수학 | 합계 | 평균 | 순위 |
| 갑돌이 | 85 | 90 | 80 | =SUM(C14:E14) | =AVERAGE(C14:E14) | =RANK(G14,$G$31:$G$44) |
| 을돌이 | 65 | 85 | 80 | =SUM(C15:E15) | =AVERAGE(C15:E15) | =RANK(G15,$G$31:$G$44) |
| 병돌이 | 30 | 20 | 25 | =SUM(C16:E16) | =AVERAGE(C16:E16) | =RANK(G16,$G$31:$G$44) |
| 정돌이 | 90 | 95 | 85 | =SUM(C17:E17) | =AVERAGE(C17:E17) | =RANK(G17,$G$31:$G$44) |
| 무돌이 | 65 | 75 | 95 | =SUM(C18:E18) | =AVERAGE(C18:E18) | =RANK(G18,$G$31:$G$44) |
| 기돌이 | 60 | 55 | 90 | =SUM(C19:E19) | =AVERAGE(C19:E19) | =RANK(G19,$G$31:$G$44) |
| 경돌이 | 90 | 90 | 90 | =SUM(C20:E20) | =AVERAGE(C20:E20) | =RANK(G20,$G$31:$G$44) |
| 신돌이 | 95 | 85 | 95 | =SUM(C21:E21) | =AVERAGE(C21:E21) | =RANK(G21,$G$31:$G$44) |
| 임돌이 | 65 | 85 | 50 | =SUM(C22:E22) | =AVERAGE(C22:E22) | =RANK(G22,$G$31:$G$44) |
| 계동이 | 80 | 80 | 70 | =SUM(C23:E23) | =AVERAGE(C23:E23) | =RANK(G23,$G$31:$G$44) |
| 갑순이 | 95 | 70 | 65 | =SUM(C24:E24) | =AVERAGE(C24:E24) | =RANK(G24,$G$31:$G$44) |
| 을순이 | 65 | 65 | 75 | =SUM(C25:E25) | =AVERAGE(C25:E25) | =RANK(G25,$G$31:$G$44) |
| 병순이 | 80 | 60 | 70 | =SUM(C26:E26) | =AVERAGE(C26:E26) | =RANK(G26,$G$31:$G$44) |
| 정순이 | 90 | 50 | 100 | =SUM(C27:E27) | =AVERAGE(C27:E27) | =RANK(G27,$G$31:$G$44) |
[표 2]
| 성 명 | 국어 | 영어 | 수학 | 합계 | 평균 | 순위 | 백분율 순위 |
| 갑돌이 | 85 | 90 | 80 | =SUM(C31:E31) | =AVERAGE(C31:E31) | =RANK(G31,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G31) |
| 을돌이 | 65 | 85 | 80 | =SUM(C32:E32) | =AVERAGE(C32:E32) | =RANK(G32,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G32) |
| 병돌이 | 30 | 20 | 25 | =SUM(C33:E33) | =AVERAGE(C33:E33) | =RANK(G33,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G33) |
| 정돌이 | 90 | 95 | 85 | =SUM(C34:E34) | =AVERAGE(C34:E34) | =RANK(G34,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G34) |
| 무돌이 | 65 | 75 | 95 | =SUM(C35:E35) | =AVERAGE(C35:E35) | =RANK(G35,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G35) |
| 기돌이 | 60 | 55 | 90 | =SUM(C36:E36) | =AVERAGE(C36:E36) | =RANK(G36,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G36) |
| 경돌이 | 90 | 90 | 90 | =SUM(C37:E37) | =AVERAGE(C37:E37) | =RANK(G37,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G37) |
| 신돌이 | 95 | 85 | 95 | =SUM(C38:E38) | =AVERAGE(C38:E38) | =RANK(G38,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G38) |
| 임돌이 | 65 | 85 | 50 | =SUM(C39:E39) | =AVERAGE(C39:E39) | =RANK(G39,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G39) |
| 계동이 | 80 | 80 | 70 | =SUM(C40:E40) | =AVERAGE(C40:E40) | =RANK(G40,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G40) |
| 갑순이 | 95 | 70 | 65 | =SUM(C41:E41) | =AVERAGE(C41:E41) | =RANK(G41,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G41) |
| 을순이 | 65 | 65 | 75 | =SUM(C42:E42) | =AVERAGE(C42:E42) | =RANK(G42,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G42) |
| 병순이 | 80 | 60 | 70 | =SUM(C43:E43) | =AVERAGE(C43:E43) | =RANK(G43,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G43) |
| 정순이 | 90 | 50 | 100 | =SUM(C44:E44) | =AVERAGE(C44:E44) | =RANK(G44,$G$31:$G$44) | =PERCENTRANK($G$31:$G$44,G44) |
I31 셀에는 아래와 같은 수식이 들어 있습니다.
=PERCENTRANK($G$31:$G$44,G31,3)
PercentRank라는 새로운 함수가 나왔군요. PercentRank는 데이터 영역 중에서 백분율 순위를 구해주는 함수입니다. 위의 예에서 볼 수 있듯이 이 함수를 사용하면 데이터 집합 내에서 특정 값의 상대적 순위를 알 수 있습니다.
PercentRank 함수는 세 가지 인수로 구성되어 있습니다.
PERCENTRANK(array,x,significance)
| Array | 상대 순위를 구하고자 하는 배열 또는 범위 |
| X | 순위를 구하고자 하는 값 |
| Significance | 구한 백분율 값에 대한 유효 자릿수 개수. Default=세 자리(0.xxx) |
주의
array가 비어 있으면 #NUM! 오류 값을 표시합니다. x와 일치하는 배열 값이 없으면 보간법을 사용하여 정확한 백분율 순위를 산출합니다. significance < 1이면 #NUM! 오류 값이 표시됩니다.
백분율 순위는 다른 작업(예를 들면 사원 평가나 내신 성적 산출 등)을 위한 기초 작업으로 사용되는 경우가 많습니다. 즉 PercentRank를 사용한 결과값을 Index, Match 함수와 조합하여 사용하면 보다 융통성 있는 자료를 만들 수 있게 됩니다. 많이 응용해 보세요.
정리 — RANK와 PERCENTRANK 비교
| 함수 | 결과 형태 | 수식 예 |
|---|---|---|
| RANK | 정수 순위(1위, 2위…) | =RANK(G31,$G$31:$G$44) |
| PERCENTRANK | 0~1 사이 백분율 순위 | =PERCENTRANK($G$31:$G$44,G31) |
자주 묻는 질문 (FAQ)
Q1. PERCENTRANK 함수는 무엇을 계산하나요?
PERCENTRANK는 데이터 집합 내에서 특정 값의 상대적인 백분율 순위를 구해주는 함수입니다. RANK 함수가 몇 번째 순위인지를 정수로 알려준다면, PERCENTRANK는 그 순위를 0~1 사이의 백분율 값으로 환산해 줍니다.
Q2. PERCENTRANK 함수의 인수는 무엇을 의미하나요?
PERCENTRANK(array,x,significance)에서 array는 상대 순위를 구하고자 하는 배열 또는 범위, x는 순위를 구하고자 하는 값, significance는 구한 백분율 값의 유효 자릿수(기본값은 세 자리, 0.xxx)입니다.
Q3. PERCENTRANK 사용 시 주의할 점은 무엇인가요?
array가 비어 있으면 #NUM! 오류가 표시되고, x와 일치하는 배열 값이 없으면 보간법을 사용해 정확한 백분율 순위를 계산합니다. significance가 1보다 작으면 역시 #NUM! 오류가 표시됩니다.
마치며
PERCENTRANK는 단독으로도 유용하지만, Index·Match 함수와 조합하면 사원 평가나 성적 산출처럼 등급을 나누는 작업에 훨씬 유연하게 응용할 수 있습니다.