KutoolsforOffice— 하나의 솔루션, 다섯 가지 강력한 도구。적은 노력으로 더 큰 성과。

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 등)을 추가한 십진수를 생성하며, 채우기 핸들을 아래로 드래그하여 데이터가 포함된 모든 행에 공식을 복사합니다。

Excel에서 빈 셀을 건너뛰며 값을 순위 매기기 위한 수식 스크린샷

매개변수 설명 및 팁:

  • $A2: 순위를 매길 첫 번째 셀입니다。 목록이 다른 행에서 시작하는 경우 조정하세요。
  • $B$2: 이 공식을 입력할 셀입니다。 수식을 아래로 복사할 때 올바르게 작동하도록 절대 참조($A2 및 $B$2 등)에 주의하세요。

2. 다음 열(예:C2)에 보조 값의 정렬된 목록을 생성하는 다음 공식을 입력하세요:

=SMALL($B$2:$B$8,ROW()-ROW($C$1))

이 공식은B2:B8(참고: 데이터가 더 길면 범위를 변경하세요)에서 가장 작은 값, 다음으로 작은 값 등을 순차적으로 추출하며 공식을 아래로 복사합니다。

Excel에서 값을 순위 매기기 위해 SMALL 수식을 적용한 스크린샷

매개변수 설명:

  • $B$2:$B$8: 이전(첫 번째) 보조 공식이 사용된 범위입니다。
  • $C$1: 공식을 입력할 위치 바로 위의 셀입니다。 이 오프셋은 순위 순서를 제어합니다。

3. 셀D2에 빈 셀을 그대로 두면서 순위를 할당하는 다음 공식을 입력하세요:

=IFERROR(MATCH($B2,$C$2:$C$8,0),"")

이 공식은B2의 값을 정렬된 결과인C2:C8내에서 찾습니다。 일치하면 순위를 출력하고, 그렇지 않으면(예: 빈 셀의 경우) 아무것도 출력하지 않아 빈 셀이 공백으로 유지됩니다。 관련된 모든 행에 적용하려면 채우기 핸들을 아래로 드래그하세요。

빈 셀을 무시하면서 순위를 생성하기 위한 MATCH 수식 스크린샷

매개변수:

  • $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 를 선호하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및 40+개 이상의 언어를 지원합니다!

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 앱을 사용하는 팀에 이상적입니다。

ExcelWordOutlookTabsPowerPoint
  • 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
  • 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
  • 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
  • 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
  • 최고의 가성비— 개별 애드인 구매 대비 절약