Skip to main content

인접한 셀이 비어있지 않을 경우 Excel에서 행을 자동으로 번호 매기는 방법은 무엇입니까?

Author: Xiaoyang Last Modified: 2025-07-21
autonumber rows if adjacent cell not blank

Excel에서 채우기 핸들을 사용하여 일련의 숫자를 수동으로 생성하는 것은 목록에 대한 일련 번호 또는 인덱스를 생성하는 일반적인 방법입니다. 그러나 특정 인접 셀에 데이터가 포함된 경우에만 행을 번호 매기고 싶은 상황이 종종 있습니다. 예를 들어, 목록에서 행 번호를 자동으로 생성하지만 인접한 데이터 셀이 비어있는 경우에는 번호를 건너뛰고 싶을 수 있습니다. 더 나아가, 데이터가 입력되거나 삭제됨에 따라 이러한 번호가 즉시 업데이트되기를 기대할 수 있습니다. 이로써 수동 개입 없이 항상 최신 순서를 유지할 수 있습니다.

수식을 사용하여 인접한 셀이 비어있지 않은 경우 행 번호 매기기

VBA 코드를 사용하여 인접한 셀이 비어있지 않은 경우 행 번호 매기기


arrow blue right bubble 수식을 사용하여 인접한 셀이 비어있지 않은 경우 행 번호 매기기

인접한 셀 값에 따라 동적인 행 번호 매김을 달성하기 위한 효율적인 방법은 Excel 수식을 사용하는 것입니다. 이 방법을 사용하면 인접한 셀에 값이 있을 때만 행 번호가 표시됩니다. 이러한 셀에 데이터를 추가하거나 삭제할 때 번호는 자동으로 업데이트되어 일치합니다. 다음은 사용할 수 있는 실질적인 방법입니다.

1. 번호 매김을 시작하려는 셀을 선택하십시오 (예: 데이터가 B2에서 시작한다면 A2). 다음 수식을 입력하십시오:

=IF(B2<>"",COUNTA($B$2:B2),"")
: 이 수식은 B2 셀이 비어있지 않은지 확인합니다. B2에 데이터가 있으면 현재 행까지 B2부터 모든 비어있지 않은 셀을 계산하여 값을 포함하는 행에 대한 연속적인 시퀀스를 생성합니다. B2가 비어있으면 수식은 공백을 반환하여 시퀀스 셀을 비워둡니다.

2. 그런 다음, 데이터 옆에 있는 채우기 핸들을 드래그하여 이 수식을 다른 행에 적용하십시오. 번호 매김은 자동으로 조정되어 B열에 데이터가 있는 행에 대해서만 번호를 표시합니다.

autonumber if not blank with formula

참고: 이 방법은 새로운 데이터가 언제든지 삽입, 삭제 또는 수정될 수 있는 목록에 특히 유용합니다. 시퀀스는 항상 정확하게 유지되며 수동으로 다시 번호를 매기거나 다시 계산할 필요가 없습니다. 그러나 데이터의 일부로 의도적인 간격(예: 빈 셀)이 있는 경우 해당 행은 번호가 매겨지지 않습니다.

번호가 예상대로 업데이트되지 않는 문제가 발생하면 관련된 모든 행에 수식이 복사되었는지, 그리고 범위에 영향을 미치는 병합된 셀이나 데이터 유효성 검사가 없는지 확인하십시오. 수식은 정확한 참조에 의존하며 워크시트 구조 변경에 의해 중단될 수 있습니다.


arrow blue right bubble VBA 코드를 사용하여 인접한 셀이 비어있지 않은 경우 행 번호 매기기

더 고급 사용자나, 수식을 전체 워크시트에 적용하고 싶지 않거나 데이터를 붙여넣거나 블록을 제거하거나 빈번한 변경 작업을 할 때 번호 매김을 업데이트해야 하는 경우 VBA 매크로는 매력적인 대안을 제공합니다. VBA를 사용하면 수식 없이도 인접한 셀이 편집될 때마다 한 열에서 행 번호를 자동으로 업데이트할 수 있습니다. 이는 자주 레이아웃이 변경되는 데이터 입력 양식, 가져오기 로그 또는 작업 목록에 이상적입니다.

1. Alt + F11을 눌러 Visual Basic for Applications 편집기 창을 엽니다. 프로젝트 탐색기에서 해당 워크북을 찾은 후 "Microsoft Excel Objects" 아래에 있는 관련 워크시트(예: “Sheet1”)를 두 번 클릭하십시오.

2. 나타나는 코드 창에 다음 코드를 붙여넣으십시오. 이 예에서는 B열이 비어있지 않은 경우 A열에서 행 번호를 매기려고 합니다. 필요한 경우 특정 범위에 대한 참조를 조정할 수 있습니다:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chk As Range
    Set chk = Intersect(Target, Me.Columns("B"))
    If chk Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    Call RenumberNonBlank(Me, "B", "A", 2)
    Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
                    keyCol As String, _
                    numCol As String, _
                    firstDataRow As Long)
    Dim lastRow As Long
    Dim r As Long
    Dim seq As Long
    lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
    seq = 1
    For r = firstDataRow To lastRow
        With ws
            If Trim(.Cells(r, keyCol).Value) <> "" Then
                .Cells(r, numCol).Value = seq
                seq = seq + 1
            Else
                .Cells(r, numCol).ClearContents
            End If
        End With
    Next r
End Sub

3. VBA 편집기를 저장하고 닫습니다. 이제 B열에 데이터를 추가, 편집 또는 지우면 A열이 즉시 다시 번호가 매겨져 데이터의 존재 여부를 반영합니다. B열에 항목을 추가하거나 삭제함에 따라 시퀀스가 위아래로 이동합니다.

주의사항 및 주의점: 이 매크로는 셀 편집에 반응하도록 원하는 워크시트 코드 창(모듈이나 ThisWorkbook이 아닌)에 특별히 배치되어야 합니다. 또한 Excel 설정에서 매크로가 활성화되어 있어야 코드가 작동합니다. "데이터 범위"가 A열과 B열 외의 열로 이동할 경우 Set chk = Intersect(Target, Me.Columns("B"))Call RenumberNonBlank(Me, "B", "A", 2) 참조를 적절히 업데이트하십시오.

문제 해결: 번호 매김이 업데이트되지 않는 경우, 올바른 워크시트를 편집하고 있으며 코드가 적절한 워크시트 코드 창에 배치되어 있는지 다시 확인하십시오. 또한, 통합 문서를 매크로 사용 가능 파일(.xlsm)로 저장했는지 확인하십시오. 예상치 못한 오류가 발생하면 머지된 셀이나 헤더 행에 데이터와 같이 워크시트 구조를 변경하지 않았는지 다시 확인하십시오.


최고의 오피스 생산성 도구

? 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% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!