엑셀] RANK함수로 순위 구하고, 그룹별 순위 구하기

2016.10.12 00:30


RANK함수는 엑셀2007부터 RANK.EQ함수로 바뀌었다. 

(엑셀2007 이하 버전에서 정상적으로 작동하기 위해서는 RANK함수를 사용해야 한다는 뜻)


RANK.EQ함수를 이용해서 등수를 구해보자. 


RANK.EQ함수의 사용법은 아래처럼 간단하다.


=RANK.EQ(순위를 구하려는 값, 범위, [정렬방법])


첫번째 인수로 순위를 구하려는 값

두번째 인수로 순위를 구하려는 범위를 지정하면 된다. 

(세번째 인수를 사용하지 않거나 0을 사용하면 기본값인 내림차순으로, 1을 사용하면 오름차순으로 순위를 계산한다. 즉. 세번째 인수로 1을 사용하면 성적이 제일 낮은 사람이 1로 계산된다)


아래 그림에서 다음 수식을 입력하였다. 

=RANK.EQ(D2,$D$2:$D$14)



위 그림에서 볼 수 있듯, 동점자가 있을 때 모두 같은 등수로 처리하고 동점자수만큼 건너뛰고 다음 순위를 처리한다. 


RANK함수 중에서 RANK.AVG함수는 동점자가 있을 때 동점자 순위의 구간 평균값을 나타낸다.  

(2등이 2명이라면 2등과 3등의 평균인 2.5로 표시되고

4등이 3명이라면 4,5,6 등의 평균인 5로 표시된다)



< 가점을 부여해서 동점자를 처리하는 방법 >

 - [Excel/엑셀 함수] - 엑셀] 등수(순위) 구할 때 동점자 처리





이제 각 부서별로 몇 등을 했는지 확인해보자. 

전체 등수와 함께 계열별, 팀별(반별) 등수(순위)를 구하기 위해서는 배열수식을 이용하거나 Sumproduct함수를 이용한다. 


=SUMPRODUCT(($A$2:$A$14=A2)*($D$2:$D$14>D2))+1

이 수식은 부서명이 같은 경우와 성적이 자신보다 큰 경우를 AND조건으로 구하고 거기에 1을 더하는 수식이다. 

(1등인 경우 자신보다 성적이 큰 숫자가 없기 때문에 0이 나오기 때문이다)


배열수식으로 구하는 방법은 sum함수와 sumproduct함수가 비슷하기 때문에 수식도 비슷하다. 

=SUM(($A$2:$A$14=A2)*($D$2:$D$14>D2))+1




또루아빠 Excel/엑셀 함수 , , , , , , , , , , ,

  1. Blog Icon
    오영지

    검색하여 들어왔어요
    자세하게 설명이 잘되어 있어 한결 이해하기가 쉬워요

    성적은 저렇게하면 점수가 높은데로 1.2.3등 되는데
    가령 달리기나 수영등 기록은 낮은순위가 1등이자나요
    그럴경우 낮은 점수로 등수를 구하는 방법 좀 알려주세요..

  2. 찾아주셔서 감사합니다. ^^

    본문 앞 부분에 흐릿하게 적어놓아서 잘 안보이는군요. (잘 보이도록 본문을 다시 수정했습니다)

    rank.eq함수를 쓰고 세번째 인수로 1을 주면 됩니다.
    위 글에서는 인수를 두가지만 입력했습니다만 세번째 인수를 0으로 입력하면 기본값이 내림차순, 1로 입력하면 오름차순으로 등수를 계산합니다.

    말씀하신 것처럼 달리기 기록 같은 경우는 세번째 인수로 1을 주면 가장 적은 수(빠른 순서)가 1등이 됩니다. ^^

  3. Blog Icon
    guhsdl

    그룹내에 순위가 중복 되는데 중복 없이구할 순 없나요?

  4. rank.avg 함수를 이용하시거나 다른 조건을 줘서 순위를 구할 수 있습니다. http://ttend.tistory.com/594 여기 있는 글을 참고해보세요. ^^

  5. Blog Icon
    랄라뽀

    안녕하세요. 잘 보고 따라했습니다. 혹시 각 그룹 1등만 모아 정렬을 한다거나 하는 방법은 없을까요? 꼭 알고싶습니다. 감사합니다. 제 메일 주소는 lovelytrk@naver.com 입니다.

  6. Blog Icon
    셀러

    관리자의 승인을 기다리고 있는 댓글입니다

  7. Blog Icon
    정태화

    상기 예제에서 기획팀/인사팀 두팀전체에서 순위매기븐 방법은요?
    즉 기획팀 4명, 인사팀4명 총 8명중에서 몇등인지요?

  8. 블로그 글 위쪽에 있는 RANK.EQ함수를 사용하면 안될까요??
    RANK.EQ 함수 두번째 인수를 기획팀/인사팀의 범위로 지정하면....