현대 사회는 죽을 때까지 다른 사람과 경쟁하는 무한 경쟁 시대입니다.
경쟁을 한다는 것은 필연적으로 순위가 매겨진다는 것입니다. 매겨진 순위에 따라서 그에 따르는 보상이 주어지게 되는데 그러면서 사회가 발전해 나가는 것입니다.
뜬금없지만 엑셀에서도 순위가 있고 순위를 매길 수 있는 함수가 있습니다. 바로 RANK 함수 입니다.
현대사회 필수불가결 요소 경쟁
RANK 함수 사용법
RANK 함수는 목록 범위 내에서 지정한 수의 크기 순위를 반환하는 함수로 옵션에 따라 큰 순위 작은 순위를 선택할 수 있습니다.
▶ RANK 함수 형식
RANK 함수는 다음과 같은 형식으로 사용할 수 있습니다.
=RANK(Number, Ref, [Order])
▶ RANK 함수 인수
RANK 함수는 위와 같이 Number, Ref, [Order] 세 개의 인수를 매개값으로 가지는데 각 인수는 다음과 같은 의미가 있습니다.
Number : 순위를 구하려는 수로 셀주소나 수를 입력
Ref : 비교하려는 목록의 배열 또는 참조로 배열내 숫자 이외의 값은 무시
[Order] : 옵션요소로 "1"이면 작을수록 순위가 높으며 "0"이나 생략하면 클수록 순위가 높음
RANK 함수 인수
아래와 같이 60에서 80사이의 순위를 매길 숫자가 있을 때
RANK 함수 인수
순위를 매길 셀에서 =RANK(A2,$A$2:$A$11,0)과 같이 입력하여 아래로 끌어서 채우기를 하면 각 RANK 대상별로 순위가 매겨지는 것을 볼 수 있습니다.
RANK 함수 순위 결과
반대로 수가 적을수록 높은 순위를 받게 하려면 마찬가지 순위를 매길 셀에서 =RANK(A2,$A$2:$A$11,1) (OPTION에 0이 아닌 1을 입력)과 같이 입력하여 아래로 끌어서 채우기를 하면 각 RANK 이전과는 반대로 순위가 매겨지게 됩니다.
RANK 함수 오름차순 순위 결과
여기서 주목할 점은 같은 숫자에는 같은 순위가 매겨지며 중복 숫자가 있으면 다음 숫자의 순위에 영향을 줍니다. 다음 순위는 이전까지 총 순위의 다음 순위가 매겨지게 되는데 위의 예를 들면 오름차순으로 정렬된 정수 목록에서 80이 1위고 75가 네 번 있으므로 모두 공등 2위가 되며 다음 순위인 70은 이전까지의 총 순위가 5개이므로 6위가 되며 3,4,5등은 없습니다.
RANK 함수의 응용
위의 [RANK 함수 인수] 사진에서 볼 수 있듯이 RANK 함수는 엑셀 2007이전 버전에서만 제공하는 함수로 이후 버전에서는 RANK.EQ와 RANK.AVG로 나뉩니다. 물론 이전버전에서 사용했던 함수도 호환성을 위해서 제공되기는 합니다.
EQ와 AVG는 Equal과 Average의 약자로 각 함수는 사용법은 기존의 RANK 함수와 차이가 없으며 단지 동순위일 때 순위 처리 방법에 차이가 있습니다.
▶ RANK.EQ 함수
RANK.EQ 함수는 기존의 RANK 함수와 결과 값이 동일하게 동순위일 경우에 해당 집합의 순위의 최상위 순위가 반환됩니다.
RANK.EQ 함수 인수
RANK 함수와 동일한 결과의 RANK.EQ함수
▶ RANK.AVG 함수
RANK.AVG 함수는 동순위일 경우 동순위의 평균값은 순위로 반환합니다.
아래와 같이 75는 2위부터 5위까지 4개의 동순위를 차지합니다. RANK.AVG 함수는 이 75가 차지하는 순위 2, 3, 4, 5의 평균 값 3.5를 순위로 반환하게 됩니다. 마찬가지로 70의 경우는 6, 7, 8위의 평균 순위 7을 반환하게 됩니다.
동일 등수를 평균하는 RANK.AVG 함수
동일순위 무시하고 순위 매기기
다시 RANK 함수로 돌아와서 위에서 RANK 함수는 동일 순위 다음 순위는 이전까지의 총순위의 다음 순위가 매겨지게 됩니다. 그렇다면 이를 무시하고 단순히 1, 2, 3.... 순서대로 순위를 매길려면 어떻게 해야 할까요?
단순히 RANK함수로는 힘들고 다른 함수의 도움을 좀 많이 받아야 하는데 SUMPRODUCT, N, COUNTIF 함수를 조합하여 아래와 같이 입력하면 됩니다.
=SUMPRODUCT(N($A$2:$A$11>A2),1/COUNTIF($A$2:$A$11,$A$2:$A$11))+1
동일 순위 무시하고 순위 매기기
최근댓글