엑셀 rank 중복 없이 순위 구하는 방법

2022. 4. 29. 19:21 / 서기랑

 엑셀의 rank 함수를 이용하여 순위를 구하면 중복 값에 대해서는 같은 값을 지정한다.

 때문에 중복 순위 없이 고유 순위를 구하고자 한다면 다른 함수를 같이 활용해야 하는데 방법 자체는 크게 어렵지 않다.

 

엑셀 중복 없이 순위 구하기

1. 수식 만들기.

 rank 함수를 이용하여 중복 순위 없이 고유한 순위를 구하고자 한다면 countif 함수를 같이 사용하면 된다.

 기본적인 수식은 rank 함수 부분은 변경 없이 그대로 입력하고 countif 함수를 아래와 같은 방식으로 붙여주면 된다.

=rank(대상 셀, 셀 범위) + countif(셀 범위, 대상 셀)-1

수식 입력 창

 수식 자체는 어렵지 않지만 주의할 부분은 countif의 셀 범위는 순위를 구하는 전체 셀의 범위가 아닌 현재 위치까지 범위를 지정해야 한다는 것이다.

 예를 들어 A1부터 A10까지 셀 값의 순위를 구하고자 한다면 A1의 순위를 구할때 countif의 셀 범위는 a1:a1이 되며 a2는 a1:a2, a3은 a1:a3과 같은 방식이다.

 (때문에 $붙여서 고정하게 되면 원하는 결과가 나오지 않는다.)

1번 행 : =RANK(A1,$A$1:$A$10) + COUNTIF($A$1:A1,A1)-1
2번 행 : =RANK(A2,$A$1:$A$10) + COUNTIF($A$1:A2,A2)-1
3번 행 : =RANK(A3,$A$1:$A$10) + COUNTIF($A$1:A3,A3)-1
...

 countif 범위가 순위를 구하고자 하는 전체 셀의 범위가 아닌 현재 셀 까지라는 것만 알고 있다면 특별하게 어려운 부분은 없는 수식이다.

 (행에 따라 범위가 바뀐다고 보면 된다.)

 

2. 작동 원리.

 rank 함수를 통해 정해진 순위에 countif 함수를 통해 찾은 중복값의 수만큼 값을 더해주는 것이다.

 이때 countif 범위를 전체 범위의 셀로 지정하게 되면 동일한 순위의 값은 중복값중복 값 역시 같아지기 때문에 현재 셀까지 범위를 지정하여 중복 값이 발생한 셀부터 숫자가 카운트되도록 하는 것이다.

 마지막의 -1은 countif의 수식의 기본 값이 1이 나오기 때문에 이를 상쇄하기 위해 붙인다고 보면 된다.

rank 중복 없이 순위 구하기

 

그 외 내용

 수식자체는 어렵지 않지만 사용처는 생각보다 많기 때문에 이해하고 알아두면 엑셀을 사용하는데 꽤나 많은 도움이 되는 수식이 아닐까 한다.

 설명이 부족하더라도 한 번 해보면 금방 이해할 수 있지 않을까 한다.