Skip to main content

Excel에서 그룹별로 값을 순위 매기는 방법은 무엇입니까?

Author: Sun Last Modified: 2025-08-06

Excel에서 그룹화된 데이터를 작업할 때는 종종 각 그룹 내의 값을 비교해야 합니다. 예를 들어 지역별로 판매 실적을 순위 매기거나, 반별로 시험 점수를 정리하거나, 카테고리별로 거래 금액을 분류하는 경우가 있습니다. Excel은 데이터 순위 매기기에 강력한 도구를 제공하지만, 그룹 내 순위 매기기(일명 '그룹별 순위' 또는 '조건부 순위')는 특정 접근 방식이 필요합니다. 이 방법은 특히 여러 범주 간에 결과를 혼합하지 않고 성과를 평가하거나 상위 및 하위 기록을 식별해야 할 때 유용합니다. 다음 방법들은 그룹별로 값을 순위 매기는 실용적인 솔루션을 탐색하여 일상적인 작업에서 데이터를 정확히 해석하고 분석하기 쉽게 만듭니다.
A screenshot showing a grouped data set with ranked values in Excel

그룹별로 값을 순위 매기기
VBA 코드 - 매크로를 사용하여 각 그룹 내 값을 자동으로 순위 매기기


arrow blue right bubble 그룹별로 값을 순위 매기기

학생들의 점수를 반별로 매기거나 다른 지역별로 판매량을 나열해야 하는 등 독립된 그룹 내에서 값을 순위 매겨야 하는 상황에서는 Excel에 직접적인 "그룹별 순위" 기능이 없습니다. 그러나 잘 설계된 수식을 통해 효율적으로 그룹별 순위를 매길 수 있으며 추가적인 데이터 조작 없이도 이를 수행할 수 있습니다.

이를 위해 논리 테스트와 집계 함수를 결합한 배열 수식을 사용할 수 있습니다. 이 접근 방식을 통해 각 값은 지정된 그룹 내에서만 비교되며, 필요한 각 데이터 포인트에 대한 순위가 생성됩니다.

다음 단계를 따르세요:

  • 그룹 (A2:A11)과 값 (B2:B11)과 같은 열에 그룹화된 데이터를 준비하세요.
  • 데이터 옆에 있는 빈 셀을 선택하세요—보통 값 바로 옆의 첫 번째 행입니다. 예를 들어 C2셀을 선택하세요.
  • 다음 수식을 입력하세요:
=SUMPRODUCT(($A$2:$A$11=A2)*(B2<$B$2:$B$11))+1

이 수식은 동일한 그룹 내에서 현재 값보다 작은 값을 세는 방식으로 작동합니다. 각 매개변수가 의미하는 바는 다음과 같습니다:

  • ($A$2:$A$11=A2)
    → 이는 A2:A11 범위의 각 셀이 A2의 값과 같은지 확인합니다.
    → 해당 행이 A2와 동일한 그룹에 속하는지 여부를 나타내는 TRUE/FALSE (또는 1/0) 값의 배열을 반환합니다.
  • (B2<$B$2:$B$11)
    → 이는 B2:B11에서 B2보다 큰 값의 수를 확인합니다.
    → B2가 주어진 값보다 작으면 TRUE (1), 그렇지 않으면 FALSE (0)을 반환합니다.
  • * (곱셈)
    → 이 두 조건을 결합합니다:
  • 그룹 일치 (A2)
    B2의 값이 다른 값보다 작음
    → 따라서 동일한 그룹에 속하며 더 작은 값을 가진 행만 계산됩니다.
  • SUMPRODUCT(...)
    → 두 조건을 모두 충족하는 행의 수를 합산합니다.
  • +1
    → 순위는 0이 아닌 1부터 시작하므로, 더 작은 값의 수에 1을 더합니다.

C2에 수식을 입력한 후, 모든 관련 행에 대해 수식을 적용하도록 자동채우기 핸들을 아래로 드래그하세요. 수식은 각 행의 그룹과 값을 자동으로 조정하여 그룹 내 순위를 반환합니다. A screenshot showing the Excel formula applied to rank values by group in a worksheet

팁 및 주의사항:

  • 범위가 큰 경우 셀 참조를 적절히 업데이트해야 합니다.
  • 내림차순으로 순위를 매기려면 (예: 가장 큰 값이 1), 수식 비교를 B2<$B$2:$B$11에서 B2>$B$2:$B$11로 수정하세요.
  • 중복 값 처리를 위해 이 수식은 동일한 그룹 내 동일한 값을 동일한 순위로 지정합니다. 연속적인 고유 순위가 필요한 경우 추가 보조 열을 사용하는 것을 고려해보세요.

이 수식 기반 방법은 유연하며 대부분의 그룹화된 표 구조에 쉽게 적용할 수 있습니다. 그러나 매우 큰 데이터셋의 경우 배열 논리에 의존하기 때문에 계산 성능이 저하될 수 있습니다.


VBA 코드 - 매크로를 사용하여 각 그룹 내 값을 자동으로 순위 매기기

자동화된 순위 프로세스를 원하거나 대규모 데이터를 더 효율적으로 처리하려는 사용자의 경우 VBA 매크로 작성은 가치 있는 접근법이 될 수 있습니다. 매크로는 복잡한 수식에 비해 반복적인 단계를 자동화하고, 더 많은 맞춤 설정을 제공하며, 데이터를 신속하게 처리할 수 있습니다. 이는 예약된 보고서 생성, 반복적인 순위 작업, 또는 워크시트에서 수식 혼란을 피하고자 할 때 이상적입니다.

진행하기 전에 작업을 저장하고 Excel 설정에서 매크로를 활성화했는지 확인하세요. 스크립트 및 실행 방법은 다음과 같습니다:

  1. Alt + F11 키를 눌러 VBA 편집기를 활성화하세요. 나타나는 Microsoft Visual Basic for Applications 창에서 Insert > Module을 클릭한 후, 열린 모듈에 다음 코드를 붙여넣으세요:
Sub RankValuesByGroup()
    Dim DataRange As Range
    Dim GroupRng As Range
    Dim ValueRng As Range
    Dim OutCol As Range
    Dim dictGroups As Object
    Dim arrValues, arrRanks
    Dim i As Long, j As Long
    Dim GroupKey As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the data table range (including group and value columns)", xTitleId, Selection.Address, Type:=8)
    If DataRange Is Nothing Then Exit Sub
    
    Set GroupRng = Application.InputBox("Select the group column within your range", xTitleId, DataRange.Columns(1).Address, Type:=8)
    Set ValueRng = Application.InputBox("Select the value column to rank within your range", xTitleId, DataRange.Columns(2).Address, Type:=8)
    
    Set OutCol = DataRange.Offset(0, DataRange.Columns.Count).Resize(DataRange.Rows.Count, 1)
    OutCol.Cells(1).Value = "RankByGroup"
    
    Set dictGroups = CreateObject("Scripting.Dictionary")
    arrValues = ValueRng.Value
    arrRanks = ValueRng.Value
    
    ' Build group dictionaries for ranking
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        If Not dictGroups.Exists(GroupKey) Then
            dictGroups.Add GroupKey, CreateObject("System.Collections.ArrayList")
        End If
        dictGroups(GroupKey).Add arrValues(i, 1)
    Next i
    
    ' Rank within each group
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        Dim countLower As Long
        countLower = 0
        For j = 0 To dictGroups(GroupKey).Count - 1
            If dictGroups(GroupKey)(j) < arrValues(i, 1) Then
                countLower = countLower + 1
            End If
        Next j
        arrRanks(i, 1) = countLower + 1
    Next i
    
    ' Output results
    For i = 2 To UBound(arrRanks, 1)
        OutCol.Cells(i, 1).Value = arrRanks(i, 1)
    Next i
    
    MsgBox "Ranking by group completed.", vbInformation, xTitleId
End Sub
  1. Run을 클릭하세요. 대화 상자가 나타나 전체 데이터 범위, 그룹 열 및 값 열을 선택하라는 메시지를 표시합니다. 그런 다음 매크로는 각 그룹 내 값에 대한 순위를 포함한 새 열을 생성합니다.

참고 및 문제 해결:

  • 데이터와 일치하도록 열 선택이 올바른지 확인하세요: 그룹 열과 값 열이 정확히 맞아야 합니다.
  • 데이터 헤더가 포함된 경우, 올바른 순위를 위해 코드에서 초기 루프 인덱스를 데이터 구조에 따라 조정하세요.
  • 내림차순으로 순위를 매기려면 If dictGroups(GroupKey)(j) < arrValues(i,1) 비교를 그에 따라 수정하세요.
  • 권한 또는 매크로 보안 경고가 발생하면 File > Options > Trust Center에서 Excel의 매크로 보안 설정을 확인하세요.

이 VBA 방법은 특히 자동화된 보고서 워크플로와 통합될 때 더욱 발전된 또는 확장된 응용 프로그램에 유연하고 견고한 성능을 제공합니다.


a screenshot of kutools for excel ai

Kutools AI로 엑셀의 마법을 풀다

  • 스마트 실행: 셀 작업 수행, 데이터 분석 및 차트 생성 - 간단한 명령어로 모든 것을 처리합니다.
  • 사용자 정의 수식: 작업을 간소화하기 위한 맞춤형 수식을 생성합니다.
  • VBA 코딩: 손쉽게 VBA 코드를 작성하고 실행합니다.
  • 수식 해석: 복잡한 수식도 쉽게 이해할 수 있습니다.
  • 텍스트 번역: 스프레드시트 내 언어 장벽을 허물어 보세요.
AI 기반 도구로 엑셀 활용 능력을 강화하세요. 지금 다운로드하여 그 어느 때보다 높은 효율성을 경험해 보세요!

최고의 오피스 생산성 도구

🤖 Kutools AI Aide: 지능형 실행을 기반으로 데이터 분석 혁신 지능형 실행   |  코드 생성  |  사용자 정의 수식 생성  |  데이터 분석 및 차트 생성  |  Kutools Functions 호출
인기 기능: 중복 찾기, 강조 또는 중복 표시  |  빈 행 삭제  |  데이터 손실 없이 열 또는 셀 병합  |  반올림...
슈퍼 LOOKUP: 다중 조건 VLookup    다중 값 VLookup  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 드롭다운 목록 신속 생성  |  의존형 드롭다운 목록  |  다중 선택 드롭다운 목록....
열 매니저: 지정 개수 열 추가  |  열 이동  |  숨겨진 열 표시 상태 전환 |  범위 및 열 비교 ...
주요 기능: 그리드 포커스  |  디자인 보기  |  향상된 수식 표시줄   통합 문서 & 시트 관리   |  자동 텍스트 라이브러리   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독   목록별 이메일 보내기  |  슈퍼 필터  |  특수 필터 (굵게/이탤릭/취소선 필터...)...
Top15 도구 세트12개 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...)  |  50+ 차트 유형(간트 차트, ...)  |  40+ 실용 수식(생일을 기반으로 나이 계산, ...)  |  19개 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...)  |  12개 변환 도구(단어로 변환하기, 통화 변환, ...)  |  7개 병합 & 분할 도구(고급 행 병합, 셀 분할, ...)  |  ... 그리고 그 외
Kutools를 원하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 등40가지 이상의 언어를 지원합니다!

Kutools for Excel로 Excel 실력을 한 단계 업그레이드하고, 그 어떤 때보다 뛰어난 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능을 제공하여 생산성을 높이고 저장 시간을 줄여줍니다. 가장 필요한 기능을 지금 바로 확인하세요...


Office Tab이 오피스에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다

  • Word, Excel, PowerPoint에서 탭 기반 편집과 읽기를 활성화합니다.
  • 여러 문서를 새 창이 아닌 동일한 창의 새 탭에서 열고 생성하세요.
  • 생산성이50% 향상되며, 매일 수백 번의 마우스 클릭을 줄일 수 있습니다!