EXCEL

중복 값이 있을 때 순위 추출하는 법

엑셀복지사 2021. 9. 11. 17:58

※ Office 365를 기준으로 작성되었습니다.

 

중복 값이 있을 때 순위로 정렬하기.xlsx
0.01MB

 

점수에 중복값이 있을 때 팀명으로 순위를 추출하는 방법입니다.



1. 중복값이 없을 때

위와 같은 테이블에서 만약 점수에 중복값이 없다면, F3셀의 수식은 다음과 같이 짤 수 있습니다.

 

=INDEX($B$3:$B$6,MATCH(LARGE($C$3:$C$6,E3),$C$3:$C$6,0))

 

① =LARGE($C$3:$C$6,E3)
점수 범위(C3:C6)에서 1번째(E3)로 큰 점수을 구합니다.

② =MATCH(LARGE($C$3:$C$6,E3),$C$3:$C$6,0)
구한 점수가 점수 범위(C3:C6)에서 몇 번째에 위치하는지 구합니다.

③ =INDEX($B$3:$B$6,MATCH(LARGE($C$3:$C$6,E3),$C$3:$C$6,0))
팀명 범위(B3:B6)에 앞서 구한 위치값을 대입하여 팀명을 추출합니다.

 

하지만 점수에 중복값이 있기 때문에, 아래와 같이 2, 3위에 B팀이 두 번 들어가게 됩니다.


2. 중복값이 있을 때

2등에 B팀, 3등에 C팀이 들어가도록 수식을 짜보고자 합니다.

 

방법은 약간의 꼼수라고 할 수 있겠는데요, 각 팀별 점수에 아주 미미한 값을 빼거나 더해서 점수에 차이를 만드는 것입니다.

 

이 방법은 가감하는 값의 크기에 따라 오류발생 가능성이 있기 때문에 주의 깊게 사용해야 합니다.

얼마를 빼야 할지는 상황에 따라 적절히 판단할 필요가 있습니다.

 

수식으로 보여드리겠습니다.

 

=INDEX($B$3:$B$6,MATCH(LARGE($C$3:$C$6-(ROW($C$3:$C$6)/1000),E3),$C$3:$C$6-(ROW($C$3:$C$6)/1000),0))

 

점수 범위인 $C$3:$C$6에 각각 0.003 ~ 0.006을 빼는 수식은 아래와 같습니다.

 

=$C$3:$C$6-(ROW($C$3:$C$6)/1000))

 

점수 범위($C$3:$C$6) 빼는 값 (ROW($C$3:$C$6)/1000))
10 0.003
9 0.004
9 0.005
8 0.006

 

위 수식을 통해 점수 범위에 중복값을 제거했기 때문에 아래와 같은 결과를 확인할 수 있습니다.