rand(life)

동점자 석차 구하기 수식 설명 본문

컴퓨터/엑셀

동점자 석차 구하기 수식 설명

flogsta 2012. 4. 13. 07:39

이전의 글에서, 우선 순위를 부여하여 동점자의 석차를 구하는 수식을 알아보았습니다.

위 그림에서, 학생4의 순위를 구하는 식은 아래와 같습니다.

=IF(COUNTIF($F$2:$F$16,F5)>1,RANK(F5,$F$2:$F$16)+SUMPRODUCT(($F$2:$F$16=F5)*($H$2:$H$16>H5)),RANK(F5,$F$2:$F$16))

IF(COUNTIF($F$2:$F$16,F5)>1,

 

총점이 자신과 같은 사람의 수가 1보다 크면 (두명 이상이면)

총점이 384점인 사람은 총 4명이므로, 참이다.

 

,RANK(F5,$F$2:$F$16)

총점을 기준으로 한 자신의 순위에다가

총점 기준 순위는 1위 (동점자는 4명)

 

+SUMPRODUCT(($F$2:$F$16=F5)*($H$2:$H$16>H5))

거기에 총점이 자신의 총점과 같고, 가중값이 자신보다 큰 사람의 수를 더해준다

총점이 같고 가중값이 자신보다 큰 사람은 총 3명 있으므로, 3

RANK(F5,$F$2:$F$16))

 

총점이 자신과 같은 사람의 수가 1보다 크지 않으면(자신뿐이면) 총점을 기준으로 한 자신의 순위를 구한다.

 

 

그래서 최종순위는 3+1=4 가 됩니다.

 

즉, 기존의 RANK함수로만 순위를 구하면 동점자는 무조건 같은 순위로 산출됩니다. 여기서, 과목별 가중치를 부여한 가중값을 구한 후, 이 가중값이 자신보다 높은 사람은 자신보다 순위가 위로 가게 되므로, 최종 순위를 구하는 식은 다음과 같습니다.

동점자를 같은 순위로 처리한 순위 + 가중값이 자신보다 높은 사람 수 = 가중치 반영한 최종 순위

 

SUMPRODUCT함수를 사용한 수식은, 이전에 쓴 글에도 있지만,

($F$2:$F$16=F5) 이나 ($H$2:$H$16>H5)

이런 식으로 배열과 비교연산자(<,>,=)가 함께 있으면, 그 배열에서 해당 조건을 만족하는 셀의 개수를 구하고,

($H$2:$H$16)

이렇게 배열만 있으면 해당 배열에 있는 모든 셀을 더한다는 의미입니다.

따라서

SUMPRODUCT(($F$2:$F$16=F5)*($H$2:$H$16>H5)

이렇게 두 개의 수식을 연결하면, 두 개의 조건을 모두 만족하는 셀의 개수를 구하라는 의미이며,

SUMPRODUCT(($F$2:$F$16=F5)*($H$2:$H$16)

이렇게 두 개의 수식을 연결하면, ($F$2:$F$16=F5)의 조건을 만족하는 ($H$2:$H$16)배열의 셀을 더한다는 의미입니다.

 

SUMPRODUCT함수는 처음에 이해하기는 조금 어렵지만, 자유롭게 쓸 수 있으면 활용도가 매우 높으므로 연구해 두시면 좋을겁니다.

http://flogsta.tistory.com/search/sumproduct