Menu

엑셀 순위 구하기 RANK 함수: RANK.EQ, RANK.AVG, 동점

=RANK.EQ(B2,$B$2:$B$7)은 B2:B7의 값 중에서 B2가 몇 등인지를 가장 큰 값을 1등으로 반환합니다. 세 번째 인수로 1을 주면 가장 작은 값이 1등입니다. 동점은 같은 순위를 받고, COUNTIFS로 그룹 안 순위를 구합니다.

이 페이지의 모든 시트는 실제로 동작합니다. 숫자나 수식을 바꾸면 다시 계산됩니다.

=RANK.EQ(B2,$B$2:$B$7)은 B2:B7의 값 중에서 B2의 위치를 가장 큰 값을 1등으로 하여 반환합니다. 가장 작은 값을 1등으로 하려면 세 번째 인수로 1을 더하세요: =RANK.EQ(B2,$B$2:$B$7,1).

양쪽 끝에서 매출 순위 매기기
C2
ABCD
1NameSalesRank (high = 1)Rank (low = 1)
2Ana420034
3Ben310052
4Cleo560016
5Dan280061
6Eve490025
7Finn370043
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

Cleo의 매출이 가장 높으므로 C열에서는 1등, D열에서는 6등입니다. Dan의 매출을 6000으로 바꾸면 모든 순위가 바뀝니다.

RANK.EQ 구문

=RANK.EQ(number, ref, [order])
  • number: 순위를 매길 값으로, 보통 같은 행의 셀입니다.
  • ref: 순위를 매길 목록입니다. 수식을 아래로 채울 때 모든 행에서 같도록 절대 참조($B$2:$B$7)로 쓰세요.
  • order: 생략하거나 0이면 내림차순(가장 큰 값이 1), 1이면 오름차순(가장 작은 값이 1)입니다.

ref 안의 텍스트와 빈 셀은 무시됩니다. number가 ref에 아예 없으면 RANK.EQ는 #N/A를 반환합니다.

RANK.EQ와 RANK.AVG는 Excel 2010에 나왔습니다. 이전 RANK 함수도 여전히 동작하며 RANK.EQ와 같은 결과를 냅니다. Google 스프레드시트에는 세 함수가 모두 있습니다.

동점: RANK.EQ와 RANK.AVG

값이 같을 때 RANK.EQ는 모두에게 같은 순위를 주고, 그 값들이 차지한 순위를 건너뜁니다. 스포츠 성적처럼 공동 2등이 두 명이면 다음은 4등입니다. RANK.AVG는 동점인 각 값에 그 값들이 함께 차지한 위치의 평균을 줍니다.

동점 점수
C3
ABCDE
1NameScoreRANK.EQRANK.AVGUnique rank
2Ana95111
3Ben88232
4Cleo88233
5Dan76555
6Eve88234
7Finn64666
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

Ben, Cleo, Eve가 88점으로 동점입니다. RANK.EQ는 세 명 모두에게 2를, Dan에게 5를 줍니다. RANK.AVG는 2, 3, 4등의 평균인 3을 줍니다.

E열은 목록 순서로 동점을 가릅니다. COUNTIF($B$2:B2,B2)는 맨 위부터 이 행까지 그 점수가 몇 번 나왔는지 셉니다(채울 때 범위의 끝만 움직입니다). 첫 번째 88은 0을, 두 번째는 1을, 세 번째는 2를 더하므로 1부터 6까지의 순위가 정확히 한 번씩 나옵니다. "3등은 누구인가" 같은 조회에 순위를 쓸 때는 이 방식을 쓰세요. 조회하려면 순위마다 하나씩이어야 하기 때문입니다.

그룹 안의 순위

RANKIF는 없습니다. 판매 담당자를 같은 지역 안에서만 순위 매기려면, 그 지역에서 더 많이 판 사람의 수를 세고 1을 더하세요:

지역별 순위
D2
ABCD
1NameRegionSalesRank in region
2AnaNorth42003
3BenSouth31003
4CleoNorth56001
5DanSouth28004
6EveNorth49002
7FinnSouth37001
8GiaNorth39004
9HalSouth33002
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

North는 Cleo가, South는 Finn이 1등입니다. Ana의 지역을 South로 바꾸면 North 순위의 빈자리가 메워지고 South에는 다섯 번째 사람이 생깁니다. 그룹 안에서 오름차순 순위를 매기려면 "<"&C2를 쓰세요. 동점은 RANK.EQ처럼 같은 순위를 받습니다. 여러 조건으로 세는 방법은 COUNTIFS 페이지에 더 있습니다.

순위로 상위 3명 보여 주기

순위 열은 "이 사람이 몇 등인가"에 답합니다. "1등은 누구인가"에 답하려면 순위를 조회하세요. C열에 중복 없는 순위가 있다면 =XLOOKUP(1,C2:C7,A2:A7)이 1등인 이름을 반환합니다(Excel 2019 이하에서는 =INDEX(A2:A7,MATCH(1,C2:C7,0))). 순위 열이 없어도 =LARGE(B2:B7,2)는 두 번째로 큰 값을 바로 반환하고, =SORTBY(A2:B7,B2:B7,-1)은 표 전체를 큰 값부터 나열합니다(Excel 2021 또는 Microsoft 365, SORT와 SORTBY 참고).

상위 3명의 이름
F2
ABCDEF
1NameSalesRankPlaceName
2Ana420031Cleo
3Ben310052Eve
4Cleo560013Ana
5Dan28006
6Eve49002
7Finn37004
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

C열은 동점 섹션의 중복 없는 순위이므로 동점 때문에 자리가 비는 일이 없습니다. F2부터 F4에는 Cleo, Eve, Ana가 나옵니다. Ana의 매출을 6000으로 바꾸면 Ana가 맨 위로 올라갑니다.

직접 해 보기: 가장 빠른 주자가 1등

400m 기록(초)
C2
ABC
1RunnerTimeRank
2Ana58.4
3Ben55.1
4Cleo61.9
5Dan53.7
6Eve57.3
7Finn60.2
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: C2에서 B2:B7의 모든 기록 중 B2에 있는 Ana의 기록 순위를, 가장 빠른(가장 작은) 기록이 1등이 되도록 구하세요. 수식은 C7까지 아래로 채워지므로 목록에는 절대 참조를 쓰세요.

반 안의 순위
D2
ABCD
1StudentClassScoreRank in class
2AnaRed81
3BenRed92
4CleoBlue77
5DanRed69
6EveBlue95
7FinnRed85
8GiaBlue88
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

직접 해 보세요: D2에서 Ana의 점수를 같은 반(B열) 학생들 사이에서만 순위 매기세요. 가장 높은 점수가 1등입니다. 수식은 D8까지 아래로 채워집니다.

흔한 실수: 상대 참조 범위

$ 기호가 없으면 수식을 채울 때마다 범위가 한 행씩 내려가므로, 각 행은 자기 행에서 시작하는 점점 줄어드는 목록과 비교됩니다. 순위가 그럴듯해 보이지만 틀립니다:

범위가 움직였습니다: 잘못된 순위
C4
ABC
1NameSalesRank
2Ana42003
3Ben31004
4Cleo56001
5Dan28003
6Eve49001
7Finn37001
셀을 클릭하면 수식이 보입니다. 숫자나 수식을 바꾸면 시트가 다시 계산됩니다.

C4를 클릭하면 범위가 B4:B9이므로 Cleo는 자기 행부터 아래에 있는 사람들하고만 비교됩니다. Cleo가 더 많이 팔았는데도 Eve가 1등으로 나오고, Finn은 자기 자신하고만 비교되므로 1등으로 나옵니다. C2를 =RANK.EQ(B2,$B$2:$B$7)로 바꾸면 열 전체가 바로잡힙니다. 커서가 범위 안에 있을 때 F4를 누르면 $ 기호가 붙습니다(Mac에서는 Cmd+T 또는 Fn+F4). 이유는 절대 참조에서 설명합니다.

자주 묻는 질문

엑셀에서 숫자의 순위는 어떻게 구하나요?

=RANK.EQ(B2,$B$2:$B$7)을 쓰고 아래로 채웁니다. 가장 큰 값이 1등입니다. 채울 때 범위가 움직이지 않도록 $ 기호를 붙여 두세요.

엑셀에서 작은 값부터 순위를 매기려면 어떻게 하나요?

세 번째 인수로 1을 줍니다: =RANK.EQ(B2,$B$2:$B$7,1). 달리기 기록, 가격처럼 가장 작은 값이 1등이어야 할 때 쓰세요.

RANK.EQ와 RANK.AVG의 차이는 무엇인가요?

동점일 때만 다릅니다. 두 값이 공동 2등이면 RANK.EQ는 둘 다 2, 다음 값은 4를 줍니다. RANK.AVG는 2등과 3등의 평균인 2.5를 둘 다에게 줍니다.

엑셀에서 중복 없이 순위를 매기려면 어떻게 하나요?

값이 나온 횟수를 누적으로 더합니다: =RANK.EQ(B2,$B$2:$B$7)+COUNTIF($B$2:B2,B2)-1. 동점인 두 값 중 첫 번째는 그 순위를 유지하고 두 번째는 다음 순위를 받습니다.

엑셀에서 그룹 안의 순위는 어떻게 구하나요?

같은 그룹에서 더 큰 값의 개수를 세고 1을 더합니다: =COUNTIFS($A$2:$A$9,A2,$C$2:$C$9,">"&C2)+1. RANKIF 함수는 없습니다.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기