- 최초 작성일: 1999-07-23
- 최종 수정일: 2026-09-29
- 조회수: 27 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: Rank 함수
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
거의 매일 보내드리는 자료들을 여러 곳에 계신 분들이 잘들 보시는 것 같아 한편으로는 기쁘고 다른 한편으로는 부담이 갑니다.
Rank 함수
핵심 요약
- RANK 함수는 원본 데이터의 배열을 바꾸지 않고 순위만 별도로 구해 주는 함수입니다.
- Number에는 순위를 구할 셀, Ref에는 비교할 전체 범위를 지정하고 Order에 0을 입력하거나 생략하면 내림차순으로 순위가 매겨집니다.
- 수식을 아래로 복사하기 전에 Ref 범위를 절대주소로 바꾸어야 하며 F4 키로 편리하게 전환할 수 있습니다.
감질나게 하루 하나씩 올리지 말고 정리했다가 한꺼번에 달라는 분들도 계시더군요. ^^ Exceller가 처음 글을 올릴 때에는 작은 기능이지만 지치지 않고 재미있게, 하루 하나씩 즐기면서 익히는데 주안점을 두었습니다. 지금도 그 생각에는 변함이 없습니다.
오늘은 Rank() 함수에 대해 알아보도록 하겠습니다.
아래와 같은 거래처별 판매 순위표가 있습니다
여기서 거래처별 판매 달성율순으로 보고자 할 경우, 대개는
- 데이터-정렬 메뉴에서 "달성율/내림차순(또는 오름차순)"으로 지정하여 사용하거나
- 셀 포인터를 달성율 중 임의의 위치로 이동시킨 후 또는 아이콘을 사용하여 Sorting을 하게 됩니다
그러면 오름차순 또는 내림차순으로 정리가 되긴 하는데… 원본 데이터의 모양도 함께 변해 버립니다. 경우에 따라서는 원본 데이터는 그대로 둔 상태에서 순위만 별도로 보고 싶을 경우가 있을 것입니다. 이런 경우에는 Rank 함수를 사용하면 소기의 목적을 달성할 수 있습니다. 즉 아래와 같은 결과를 얻게 되는 것이지요.
| 거래처명 | 목표 | 판매 | 달성율 | 순위 |
| 신서울 | 1000 | 950 | 0.95 | 6 |
| 영등포 | 1000 | 1250 | 1.25 | 2 |
| 종로 | 1000 | 880 | 0.88 | 7 |
| 마포 | 1000 | 760 | 0.76 | 8 |
| 서대문 | 1000 | 1500 | 1.5 | 1 |
| 동대문 | 1000 | 1000 | 1 | 3 |
| 동인천 | 1000 | 980 | 0.98 | 4 |
| 남서울 | 1000 | 750 | 0.75 | 9 |
| 서인천 | 1000 | 660 | 0.66 | 10 |
| 중앙 | 1000 | 530 | 0.53 | 11 |
| 남부 | 1000 | 960 | 0.96 | 5 |
이같은 결과를 얻기 위해서는,
Step 1: 순위 셀 선택하기
참고: 본문의 F50(신서울의 순위)과 E50(신서울의 달성율)은 원본 워크시트 기준 셀 주소입니다. 직접 적용하실 때에는 자신의 표에서 해당하는 셀로 바꿔 지정하시기 바랍니다.
(1) "신서울"의 순위 부분에 셀포인터를 위치시킵니다(F50 셀)
Step 2: RANK 함수 입력하기
(2) =Rank라고 입력한 상태에서 Ctrl + A키를 탁 칩니다(왜 치냐고요? Rank라는 함수의 성질머리(즉 구성요소)를 잘 모르니까요).
Step 3: 함수 인수 대화상자 열기
(3) 그러면 아래와 같은 대화상자가 나타납니다(이런 모양의 상자를 대화상자라고 합니다. 사용자와 컴퓨터가 이 상자를 통해 조건을 주고받는 즉, 대화를 한다고 해서 대화상잔가? 암튼…)
Step 4: Number와 Ref 지정하기
(4) 이 대화상자에서 Number란에는 신서울의 달성율이 들어있는 E50 셀을 클릭합니다. Ref란에는 신서울~남부 특약점의 달성율 항목 전체를 드래깅하고, Order란에는 0(Zero)을 입력(이 란을 입력하지 않거나 0을 입력하면 내림차순으로 순위가 매겨지고 그 이외 값을 입력하면 오름차순으로 순위가 매겨집니다)
Step 5: 순위 결과 확인하기
(5) 각 항목들에 대한 입력이 끝났으면 "확인"버튼 클릭합니다.
참고: 최신 Excel에는 RANK와 같은 동작을 하는 RANK.EQ 함수가 있으며, RANK 함수도 호환성을 위해 계속 사용할 수 있습니다.
이렇게 하면 첫번째 특약점에 대한 순위가 표시됩니다. 원본 데이터는 물론 그대로 있는 상태로 말입니다. 여기까지 되었으면 그 셀을 아래로 공식복사하면… 될까요? 아직은 안되겠지요? 절대 주소로 지정해 주어야 할 부분이 있기 때문이지요. 위의 표를 참고로 그 부분을 직접 지정해 보세요.
상대주소/절대주소/혼합주소 입력시 F4 키를 사용하면 편리하게 전환할 수 있는 것은 다들 아시지요? 다음 시간에는 여러가지 문자열 함수들에 대해 설명을 드립니다. 무더운 날씨입니다. 날도 더운데 열받지 말고 일하시기를…
오늘은 이만…
정리 — Rank 함수
| 구분 | 내용 |
|---|---|
| RANK | RANK(Number, Ref, Order): 원본 데이터의 모양을 바꾸지 않고 순위만 따로 구함 |
| Number | 순위를 구할 값이 있는 셀(예제에서는 신서울의 달성율 셀) |
| Ref | 순위를 비교할 전체 범위(신서울부터 남부 특약점까지의 달성율 항목 전체) |
| Order | 0을 입력하거나 생략하면 내림차순, 그 이외의 값을 입력하면 오름차순으로 순위 결정 |
| 복사할 때 | Ref 범위를 절대주소로 지정한 뒤 아래로 수식을 복사(F4 키로 전환) |
자주 묻는 질문 (FAQ)
Q1. 원본 데이터의 순서를 바꾸지 않고 순위만 보려면 어떻게 하나요?
정렬 대신 RANK 함수를 사용합니다. 원본 데이터는 그대로 두고 순위만 별도의 열에 표시할 수 있습니다.
Q2. RANK 함수의 인수는 어떻게 지정하나요?
Number에는 순위를 구할 셀, Ref에는 비교할 전체 범위를 지정하고 Order에는 0을 입력하거나 생략합니다. 0이거나 생략하면 내림차순이고 그 이외의 값이면 오름차순으로 순위가 매겨집니다.
Q3. 순위 수식을 아래로 복사하기 전에 무엇을 해야 하나요?
비교 범위인 Ref가 복사해도 바뀌지 않도록 절대주소로 지정해야 합니다. 상대주소, 절대주소, 혼합주소는 F4 키로 편리하게 전환할 수 있습니다.
마치며
정렬과 달리 원본을 그대로 유지하면서 순위를 구하는 RANK 함수를 실무 표에 적용해 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.