Skip to main content

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

Author: Sun Last Modified: 2025-07-21

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
    → 순위는 1부터 시작하므로(0이 아닌), 작은 값의 개수에 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 함수 호출을 기반으로 데이터 분석 혁신…
인기 기능: 중복 찾기, 강조 또는 식별   |  빈 행 삭제   |  데이터 손실 없이 열 또는 셀 결합   |   수식 없이 반올림 ...
슈퍼 LOOKUP: 다중 조건 VLookup    다중 값 VLookup  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 빠르게 드롭다운 목록 만들기   |  종속 드롭다운 목록   |  다중 선택 드롭다운 목록 ....
열 관리자: 특정 개수의 열 추가  |  열 이동  |  숨겨진 열의 가시성 상태 전환  |  범위 및 열 비교 ...
주요 기능: 그리드 포커스   |  디자인 보기   |   향상된 수식 표시줄    통합 문서 및 시트 관리자   |  자동 텍스트 라이브러리 (Auto Text)   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독    목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터 (굵은 글꼴/이탤릭체/취소선 필터링...) ...
최고의 15가지 도구 모음12개의 텍스트 도구 (텍스트 추가, 특정 문자 삭제, ...)   |   50+ 차트 유형 (간트 차트, ...)   |   40+ 실용적인 수식 (생일을 기반으로 나이 계산, ...)   |   19개 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입, ...)   |   12개 변환 도구 (단어로 변환하기, 통화 변환, ...)   |   7개 병합 및 분할 도구 (고급 행 병합, 셀 분할, ...)   |   ... 그리고 더 많은 기능들

Kutools for Excel로 엑셀 스킬을 강화하고 지금까지 경험하지 못한 효율성을 체험하세요. Kutools for Excel은 생산성을 향상시키고 시간을 절약할 수 있는 300개 이상의 고급 기능을 제공합니다.  가장 필요한 기능을 얻으려면 여기를 클릭하세요...


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

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화하세요.
  • 새 창 대신 동일한 창의 새 탭에서 여러 문서를 열고 생성하세요.
  • 생산성을 50% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!