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

Excel에서 채우기 핸들을 사용하여 수동으로 숫자 시리즈를 생성하는 것은 일반적인 방법으로, 목록에 대한 일련번호나 인덱스를 생성하는 데 사용됩니다. 하지만 특정 인접 셀에 데이터가 있는 경우에만 행을 번호 매기고 싶은 상황도 자주 발생합니다. 예를 들어, 목록에서 자동으로 행 번호를 생성하지만 인접한 데이터 셀이 비어있는 경우에는 번호를 건너뛰고 싶을 수 있습니다. 더 나아가 데이터가 입력되거나 삭제됨에 따라 번호가 즉시 업데이트되기를 원할 수도 있습니다. 이렇게 하면 수동 개입 없이 항상 최신 순서를 유지할 수 있습니다.
인접한 셀이 비어있지 않은 경우 행을 수식으로 자동 번호 매기기
인접한 셀 값에 기반한 동적 행 번호를 지정하는 효율적인 방법은 Excel 수식을 사용하는 것입니다. 이 방법을 사용하면 인접한 셀에 값이 있을 때만 행 번호가 표시됩니다. 이러한 셀에 데이터를 추가하거나 삭제하면 번호는 자동으로 업데이트되어 일치하도록 조정됩니다. 다음은 사용할 수 있는 실용적인 방법입니다:
1. 번호 매길 시작 위치의 셀을 선택하세요(예: 데이터가 B2에서 시작한다면 A2). 다음 수식을 입력하세요:
=IF(B2<>"",COUNTA($B$2:B2),"")
2. 그다음, 데이터 옆으로 채우기 핸들을 드래그하여 이 수식을 다른 행에 적용하세요. 번호 매김은 자동으로 조정되고, B 열에 데이터가 있는 행에 대해서만 번호가 표시됩니다.
번호가 예상대로 업데이트되지 않는 문제가 발생하는 경우, 관련된 모든 행에 수식이 복사되었는지 확인하고, 병합된 셀이나 데이터 유효성 검사로 인해 범위에 방해가 되는 요소가 없는지 확인하세요. 수식은 정확한 참조에 의존하며, 워크시트 구조 변경으로 인해 중단될 수 있습니다.
인접한 셀이 비어있지 않은 경우 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 Functions 호출… |
인기 기능: 중복 찾기, 강조 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 병합 | 반올림... | |
슈퍼 LOOKUP: 다중 조건 VLookup | 다중 값 VLookup | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 드롭다운 목록 신속 생성 | 의존형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
열 매니저: 지정 개수 열 추가 | 열 이동 | 숨겨진 열 표시 상태 전환 | 범위 및 열 비교 ... | |
주요 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 & 시트 관리 | 자동 텍스트 라이브러리 | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록별 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵게/이탤릭/취소선 필터...)... | |
Top15 도구 세트: 12개 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...) | 50+ 차트 유형(간트 차트, ...) | 40+ 실용 수식(생일을 기반으로 나이 계산, ...) | 19개 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...) | 12개 변환 도구(단어로 변환하기, 통화 변환, ...) | 7개 병합 & 분할 도구(고급 행 병합, 셀 분할, ...) | ... 그리고 그 외 |
Kutools for Excel로 Excel 실력을 한 단계 업그레이드하고, 그 어떤 때보다 뛰어난 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능을 제공하여 생산성을 높이고 저장 시간을 줄여줍니다. 가장 필요한 기능을 지금 바로 확인하세요...
Office Tab이 오피스에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다
- Word, Excel, PowerPoint에서 탭 기반 편집과 읽기를 활성화합니다.
- 여러 문서를 새 창이 아닌 동일한 창의 새 탭에서 열고 생성하세요.
- 생산성이50% 향상되며, 매일 수백 번의 마우스 클릭을 줄일 수 있습니다!