엑셀

엑셀 RANK 함수 이해하기

콘파냐 2017. 3. 28. 17:00
반응형

주어진 데이터들 간에 순위를 구하고 싶을 때 RANK함수로 쉽게 구할 수 있다. 그런데 RANK 함수는 엑셀 2007 이전 버전에서 순위를 구하는 함수였고 2007이후로는 RANK.EQ와 RANK.AVR함수 두 가지로 나뉘었다. (그래도 여전히 RANK함수는 사용할 수 있다.)  이 두 가지 함수 RANK.EQ와 RANK.AVG은 순위 표기법만 차이가 있고 동일한 함수다. 따라서 RANK.EQ만 이해해 놓은 후 RANK.AVG의 순위 표기법만 정리해 주면 되겠다.


RANK.EQ(number, ref, [order])


상식적으로 이해하기 쉽다. 쉽게 말해 ref로 지정된 목록에서 number가 가지는 순위를 반환해 준다.

우선 간단한 예를 들어보겠다.

위 표는 사람들의 키를 기록해 놓은 표다. 각 사람들의 키에 대한 순위를 알기 위해서 RANK.EQ함수를 사용했는데 첫 번째 인자로 C2 즉, 순위를 구할 셀을 선택했고, 두 번째 인자로 비교를 위한 셀들을 선택했다. 여기서는 C2부터 C7까지 6명이 되겠다. 주의할 점은 절대 주소($를 붙임)로 해야 다음과 같이 드래그를 해서 아래 셀들에도 적용할 수 있을 것이다.


오름차순 순위


일반적으로 비교할 데이터의 수치가 높을 수록 순위가 높을 것이다. 위 예처럼 키의 경우는 그러하다.(내림차순) 하지만 달리기 시합의 경우처럼 시간으로 순위를 판단할 때는 데이터의 수치가 낮을 수록 순위가 높을 것이다. 이럴 경우 세 번째 인자를 1로 주면 되겠다. 이 인자의 기본 값은 0으로 내림차순을 나타낸다.

위 표는 앞의 표에서 키 대신 100m기록으로 바꾼 후 해당 열의 데이터만 바꾼 표다. 순위를 보면 가장 늦은 기록을 가진 민아가 1위가 되었다. 왜냐면 세번째 인자를 전달하지 않았으므로 기본 0으로 되어있기 때문이다. 그럼 세번째 인자를 1로 바꾼 후 모두 적용해 보도록 하겠다.

세번째 인자를 1로 만든후 모든 셀에 적용한 모습이다. 민아의 순위가 6위로 제대로 적용이 되었다.


RANK.AVG


만약 비교할 데이터에 동일한 값이 있다면 해당 데이터의 순위는 어떻게 되겠는가? 위 표에서 한번 혜린의 기록을 15로 만들어 보겠다.

수호와 혜린은 기록이 같아져서 공동 3위가 되었다. 하지만 이들의 다음 순위는 4위가 아니고 5위가 된다.

이번에는 함수를 RANK.AVG 바꿔보겠다. EQ를 AVG로만 바꾸면 된다.

위 표는 3위와 4위가 같은 값을 가졌 EQ는 공동 3위로 하지만 AVG는 (3+4)/2위로 만들어 3.5위가 된다. 만약 민규까지 15초로 만들면 어떻게 될까? 민규는 원래 1위였으므로 이들 셋은 공동으로 2위가 된다. 그리고 RANK.AVG함수를 쓰면 (2+3+4)/3 으로 3위가 될 것이다.

반응형