Excel 에서 빈 셀을 건너뛰고 숫자 순위를 쉽게 매기는 방법은 무엇인가요?
Excel 에서 데이터 작업 시 빈 셀이 포함된 목록을 자주 접하게 됩니다。RANK또는RANK.EQ와 같은 표준 Excel 순위 함수를 이러한 목록에 사용하면 일반적으로 빈 셀에 오류나 원치 않는 결과가 표시됩니다。 이로 인해 빈 셀에 오류 값이나 임의의 순위 대신 공백을 유지하려는 경우 데이터 해석이 어려워집니다。 빈 셀을 자동으로 공백으로 남기면서 숫자를 효율적으로 순위 매기면 결과의 명확성과 사용성을 높일 수 있어 스프레드시트가 더 전문적이고 가독성이 좋아집니다。

이 문서에서는 이 작업을 수행하기 위한 공식 및 VBA 매크로 사용에 대한 단계별 지침을 제공합니다。 확장된 해결책에는 매개변수 설명, 실용적인 팁 및 일반적인 문제를 피하는 데 도움이 되는 문제 해결 제안도 포함되어 있습니다。
공식을 사용하여 빈 셀을 건너뛰고 오름차순으로 값 순위 매기기
오름차순으로 순위를 할당하면서 빈 셀을 무시해야 하는 경우 일반적으로 여러 개의 보조 열과 공식 논리를 사용하여 빈 값이 순위 매기기에서 제외되도록 합니다。
적용 시나리오:누락된 항목이 순위 번호에 영향을 주지 않아야 하는 연속적인 범위에서 특히 빈 셀의 위치를 유지하면서 증가형(낮음에서 높음) 순위를 생성하려는 경우 이 방법을 사용하세요。
빈 셀을 건너뛰고 오름차순으로 순위를 매기려면 다음 단계를 따르세요。 두 개의 보조 열을 사용하여 결과를 구성합니다:
1. 값 옆의 빈 셀(예: 목록이)B2에서 시작하는 경우A2)를 선택하고 다음 공식을 입력하세요:
=IF(ISBLANK($A2),"",VALUE($A2&"."&(ROW()-ROW($B$2)))) A2 가 비어 있으면 공식은 공백을 반환합니다. 그렇지 않으면 A2 의 값에 따라 소수점(。0, 。1, 。2, 。3 등)을 추가한 십진수를 생성하며, 채우기 핸들을 아래로 드래그하여 데이터가 포함된 모든 행에 공식을 복사합니다。

매개변수 설명 및 팁:
- $A2: 순위를 매길 첫 번째 셀입니다。 목록이 다른 행에서 시작하는 경우 조정하세요。
- $B$2: 이 공식을 입력할 셀입니다。 수식을 아래로 복사할 때 올바르게 작동하도록 절대 참조($A2 및 $B$2 등)에 주의하세요。
2. 다음 열(예:C2)에 보조 값의 정렬된 목록을 생성하는 다음 공식을 입력하세요:
=SMALL($B$2:$B$8,ROW()-ROW($C$1)) 이 공식은B2:B8(참고: 데이터가 더 길면 범위를 변경하세요)에서 가장 작은 값, 다음으로 작은 값 등을 순차적으로 추출하며 공식을 아래로 복사합니다。

매개변수 설명:
- $B$2:$B$8: 이전(첫 번째) 보조 공식이 사용된 범위입니다。
- $C$1: 공식을 입력할 위치 바로 위의 셀입니다。 이 오프셋은 순위 순서를 제어합니다。
3. 셀D2에 빈 셀을 그대로 두면서 순위를 할당하는 다음 공식을 입력하세요:
=IFERROR(MATCH($B2,$C$2:$C$8,0),"") 이 공식은B2의 값을 정렬된 결과인C2:C8내에서 찾습니다。 일치하면 순위를 출력하고, 그렇지 않으면(예: 빈 셀의 경우) 아무것도 출력하지 않아 빈 셀이 공백으로 유지됩니다。 관련된 모든 행에 적용하려면 채우기 핸들을 아래로 드래그하세요。

매개변수:
- $B2: 순위를 위한 보조 값을 포함한 셀입니다。
- $C$2:$C$8: 정렬된 보조 값의 범위입니다。
주의사항:데이터를 추가하거나 제거하는 경우 각 공식의 모든 범위를 새 데이터 크기에 맞게 업데이트하세요。 매우 큰 목록의 경우 수동 범위 조정을 줄이기 위해 동적 범위나 Excel 테이블을 사용하는 것을 고려하세요。
문제 해결:순위가 누락되거나 정렬이 어긋나면 모든 보조 공식 범위가 올바르게 정렬되어 있는지 확인하세요。 열 간 정렬 불일치는 잘못된 순위 또는 의도하지 않은 오류를 초래합니다。
공식을 사용하여 빈 셀을 건너뛰고 내림차순으로 값 순위 매기기
내림차순(가장 높은 값이 순위 1 을 받음)으로 순위를 할당하려는 경우 빈 셀을 순위 위치에 차지시키지 않거나 오류를 표시하지 않으려는 시험 점수, 판매 목표 등 유사한 데이터셋에 특히 유용한 한 가지 공식만 사용하는 더 빠른 방법이 있습니다。
추출 결과를 표시할 첫 번째 데이터 항목과 동일한 행의 셀을 선택하고 다음을 입력하세요:
=IF(ISNA(RANK(A2,A$2:A$8)),"",RANK(A2,A$2:A$8)) 공식을 입력한 후 채우기 핸들을 사용하여 데이터 옆으로 공식을 복사하세요。 이 공식은RANK함수가 오류를 반환하는지(예:A2가 비어 있는 경우) 확인합니다。 그렇다면 “#N/A”를 표시하지 않고 결과를 공백으로 남깁니다。 셀에 유효한 값이 있으면 적절한 순위를 표시합니다。

매개변수:
- A2: 순위를 매길 셀입니다(데이터 범위에 맞게 조정하세요)。
- A$2:A$8: 전체 데이터 범위입니다(복사 시 절대 참조를 사용하세요)。
오류 알림:여전히 “#N/A” 오류가 표시되면 공식 참조가 의도한 데이터 범위와 일치하는지, 순위를 매기는 셀에 숫자가 아닌 값이 없는지 다시 확인하세요。
VBA 를 사용하여 빈 셀을 건너뛰고 값 순위 매기기
매크로 사용에 익숙하고 빈 셀이 포함된 범위에서 오름차순 또는 내림차순으로 순위를 자동화하려는 사용자의 경우 맞춤형 VBA 매크로를 사용하면 여러 보조 열과 지속적인 공식 유지 관리가 필요 없어 프로세스를 크게 단순화할 수 있습니다。
사용 방법:
1. 개발자탭으로 이동하여Visual Basic을 클릭해Microsoft Visual Basic for Applications편집기를 엽니다。 개발자 탭이 표시되지 않으면 다음 안내를 참조하세요:Excel 에서 개발자 탭 표시.
2. 새Microsoft Visual Basic for Applications창에서삽입>모듈을 클릭하고 다음 코드 중 하나를 모듈 창에 붙여넣으세요:
- 빈 셀을 건너뛰고 오름차순으로 순위를 매기려면:
Sub RankSkipBlank_Ascending() Dim WorkRng As Range Dim Cell As Range Dim NumArr() As Double Dim Ws As Worksheet Dim OutputCell As Range Dim i As Long, j As Long On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Please select the range to rank", xTitleId, WorkRng.Address, Type:=8) Set Ws = WorkRng.Worksheet Set OutputCell = Application.InputBox("Please select the first cell to output the ascending ranking", xTitleId, Type:=8) If OutputCell Is Nothing Then Exit Sub j = 0 ReDim NumArr(1 To WorkRng.Rows.Count) For Each Cell In WorkRng If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then j = j + 1 NumArr(j) = Cell.Value End If Next Cell Dim temp As Double Dim k As Long For i = 1 To j - 1 For k = i + 1 To j If NumArr(i) > NumArr(k) Then ' ← CHANGE HERE temp = NumArr(i) NumArr(i) = NumArr(k) NumArr(k) = temp End If Next k Next i Dim RankArr() As Double ReDim RankArr(1 To j) For i = 1 To j RankArr(i) = NumArr(i) Next i Dim RankValue As Long Dim r As Long: r = 0 For Each Cell In WorkRng r = r + 1 If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then RankValue = 0 For k = 1 To j If Cell.Value = RankArr(k) Then RankValue = k ' 1 = smallest Exit For End If Next k OutputCell.Offset(r - 1, 0).Value = RankValue Else OutputCell.Offset(r - 1, 0).Value = "" End If Next Cell End Sub - 빈 셀을 건너뛰고 내림차순으로 순위를 매기려면:
Sub RankSkipBlank_Descending() Dim WorkRng As Range Dim Cell As Range Dim NumArr() As Double Dim Ws As Worksheet Dim OutputCell As Range Dim i As Long, j As Long On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Please select the range to rank", xTitleId, WorkRng.Address, Type:=8) Set Ws = WorkRng.Worksheet Set OutputCell = Application.InputBox("Please select the first cell to output the descending ranking", xTitleId, Type:=8) If OutputCell Is Nothing Then Exit Sub j = 0 ReDim NumArr(1 To WorkRng.Rows.Count) For Each Cell In WorkRng If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then j = j + 1 NumArr(j) = Cell.Value End If Next Cell Dim temp As Double Dim k As Long For i = 1 To j - 1 For k = i + 1 To j If NumArr(i) < NumArr(k) Then temp = NumArr(i) NumArr(i) = NumArr(k) NumArr(k) = temp End If Next k Next i Dim RankArr() As Double ReDim RankArr(1 To j) For i = 1 To j RankArr(i) = NumArr(i) Next i Dim RankValue As Long Dim r As Long: r = 0 For Each Cell In WorkRng r = r + 1 If IsNumeric(Cell.Value) And Not IsEmpty(Cell.Value) Then RankValue = 0 For k = 1 To j If Cell.Value = RankArr(k) Then RankValue = k Exit For End If Next k OutputCell.Offset(r - 1, 0).Value = RankValue Else OutputCell.Offset(r - 1, 0).Value = "" End If Next Cell End Sub
3. F5를 눌러 매크로를 실행하세요。 순위를 매길 범위를 선택하라는 대화 상자가 나타납니다。 그 후 순위 결과를 배치할 첫 번째 셀을 선택하라는 또 다른 대화 상자가 나타납니다。 매크로는 선택한 셀부터 순위를 출력하며 원본 범위의 빈 셀은 공백으로 남겨둡니다。
팁:
- 아무 일도 일어나지 않으면 매크로가 활성화되어 있고 워크북에서 코드 실행 권한이 있는지 확인하세요。
- 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 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
- 최고의 가성비— 개별 애드인 구매 대비 절약