Excel 에서 그룹별로 값을 순위 매기려면 어떻게 해야 하나요?
Excel 에서 그룹화된 데이터를 작업할 때는 지역별 판매 실적, 반별 시험 점수, 카테고리별 거래 금액처럼 각 그룹 내에서 값을 비교해야 하는 경우가 많습니다. Excel 은 데이터 순위 매기기를 위한 강력한 도구를 제공하지만, 그룹 내 순위 매기기(또는 「그룹별 순위 매기기」, 「조건부 순위 매기기」라고도 함)에는 특별한 접근 방식이 필요합니다。 이 방법은 다양한 카테고리 간 결과를 혼합하지 않고 성과를 평가하거나 상위/하위 레코드를 식별할 때 특히 유용합니다。 아래 방법들은 그룹별로 값을 순위 매기기 위한 실용적인 해결책을 제시하며, 일상적인 작업에서 데이터를 정확하게 해석하고 분석하는 데 도움을 줍니다。
그룹별로 값을 순위 매기기
VBA 코드 - 매크로를 사용하여 각 그룹 내 값 순위 자동화
그룹별로 값을 순위 매기기
반별 학생 점수 매기기나 지역별 판매 목록 작성처럼 서로 다른 그룹 내에서 값을 순위 매겨야 하는 경우, 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 에 수식을 입력한 후 자동 채우기 핸들을 끌어 데이터셋의 모든 관련 행에 수식을 채웁니다。 수식은 각 행의 그룹과 값을 자동으로 적용하여 해당 그룹 내 순위를 반환합니다。
팁 및 주의 사항:
- 범위가 크면 셀 참조를 적절히 업데이트해야 합니다。
- 내림차순으로 순위를 매기려면(예: 가장 높은 값이 1 위), 수식의 비교 부분을 다음과 같이 수정합니다:
B2<$B$2:$B$11에서B2>$B$2:$B$11로 변경합니다。 - 중복 값을 처리하기 위해 이 수식은 동일 그룹 내에서 동일한 값에 동일한 순위를 부여합니다。 연속적인 고유 순위가 필요하면 추가 보조 열을 사용하는 것을 고려하세요。
이 수식 기반 방법은 Excel 의 대부분의 그룹화된 테이블 구조에 유연하게 적용할 수 있습니다。 다만, 매우 큰 데이터셋의 경우 배열 논리에 의존하므로 계산 성능이 저하될 수 있습니다。
VBA 코드 - 매크로를 사용하여 각 그룹 내 값 순위 자동화
순위 매기기 프로세스를 자동화하거나 더 큰 데이터셋을 효율적으로 처리하려는 사용자의 경우, VBA 매크로를 작성하는 것이 유용한 접근 방식이 될 수 있습니다。 매크로는 반복적인 작업을 자동화하고 더 많은 사용자 정의 기능을 제공하며 복잡한 수식보다 빠르게 데이터를 처리할 수 있습니다。 이는 정기 보고서 생성, 반복적인 순위 매기기 작업, 워크시트 내 수식 난잡함을 피하고 싶을 때 이상적입니다。
진행하기 전에 작업 내용을 저장하고 Excel 설정에서 매크로를 활성화하세요。 다음은 이 해결책을 스크립팅하고 실행하는 방법입니다:
- Alt + F11키를 눌러 VBA 편집기를 활성화합니다。 표시되는 Microsoft Visual Basic for Applications 창에서삽입>모듈을 클릭한 후 열린 모듈에 다음 코드를 붙여넣습니다:
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 - 클릭실행。 대화 상자가 나타나 전체 데이터 범위, 그룹 열 및 값 열을 선택하라는 메시지를 표시합니다。 매크로는 각 그룹 내 값에 대한 순위가 포함된 새 열을 생성합니다。
참고 사항 및 문제 해결:
- 열 선택이 데이터와 일치하는지 확인하세요。 그룹 열과 값 열이 정확히 정렬되어야 합니다。
- 데이터 헤더가 포함된 경우, 코드 내 초기 루프 인덱스를 조정하여 데이터 구조에 맞게 정확한 순위를 매기세요。
- 내림차순으로 순위를 매기려면 비교 부분인
If dictGroups(GroupKey)(j) < arrValues(i,1)을 적절히 수정하세요。 - 권한 또는 매크로 보안 경고가 발생하면 Excel 의 매크로 보안 설정을 확인하세요。 경로:파일 > 옵션 > 신뢰 센터.
이 VBA 방법은 자동화된 보고 워크플로우와 통합될 때 특히 확장된 고급 애플리케이션에 대해 유연성과 안정적인 성능을 제공합니다。

KUTOOLS AI 와 함께 엑셀의 마법을 경험하세요
- 스마트 실행: 간단한 명령어로 셀 작업을 수행하고, 데이터를 분석하며, 차트를 생성하세요。
- 사용자 지정 수식: 워크플로우를 간소화할 맞춤형 수식을 생성하세요。
- VBA 코딩: VBA 코드를 손쉽게 작성하고 적용하세요。
- 수식 해석: 복잡한 수식도 쉽게 이해하세요。
- 텍스트 번역: 스프레드시트 내에서 언어 장벽을 허물어 보세요。
최고의 Office 생산성 도구
| 🤖 | KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행 | 코드 생성| 사용자 지정 수식 생성 | 데이터 분석 및 차트 생성| 향상된 함수 호출… |
| 인기 기능:찾기, 강조 표시 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 결합 또는 셀 제거 | 공식을 사용하지 않는 반올림... | |
| 슈퍼 LOOKUP:다중 조건 VLookup | 다중 값 VLookup | 여러 시트에서 VLookup | 퍼지 매치.... | |
| 고급 드롭다운 목록:드롭다운 목록 빠르게 생성 | 종속형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
| 열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교... | |
| 주요 기능:그리드 포커스 | 디자인 보기 |향상된 수식 표시줄 | 워크북 및 시트 관리자 | 자원 라이브러리(자동 텍스트)| 날짜 선택기 | 워크시트 병합 | 암호화/셀 해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。 | |
| 상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)| 50+차트유형(간트 차트, ...)| 40+ 실용적인수식(생일을 기준으로 나이 계산, ...)| 19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)| 12 변환도구(단어로 변환하기,환율 변환, ...)| 7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능 |
Kutools for Excel 로 Excel 역량을 한 단계 업그레이드하고 전례 없는 효율성을 경험하세요。Kutools for Excel 는 생산성과 저장 시간을 향상시키는 300 개 이상의 고급 기능을 제공합니다。가장 필요한 기능을 지금 바로 확인하세요。。。
Office Tab 가 Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다
- Word, Excel, PowerPoint 에서 탭 기반 편집 및 읽기 기능을 활성화합니다, Publisher, Access, Visio 및 Project 에서도 사용 가능합니다。
- 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성할 수 있습니다。
- 50% 만큼 생산성을 높이고 매일 수백 번의 마우스 클릭을 줄여줍니다!
모든 Kutools 애드인。 하나의 설치 프로그램
Kutools for Office스위트 번들은 Excel, Word, Outlook 및 PowerPoint 용 애드인과 Office Tab Pro 를 포함하며, 다양한 Office 앱을 사용하는 팀에 이상적입니다。
- 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
- 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
- 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
- 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
- 최고의 가성비— 개별 애드인 구매 대비 절약