Bitişik hücre boş değilse Excel'de satırları nasıl otomatik numaralandırabiliriz?

Excel'de, seriler oluşturmak için dolgu kulpu kullanarak manuel olarak seri numaraları veya liste indeksleri oluşturma yaygın bir yöntemdir. Ancak genellikle yalnızca belirli bir bitişik hücrede veri olduğunda satırları numaralandırmak isteyebilirsiniz. Örneğin, bir listede otomatik olarak satır numaraları oluşturmak isteyebilirsiniz, ancak bitişik veri hücrelerinin boş olduğu yerlerde numaralandırmayı atlamak istersiniz. Daha da fazlası, veri girildikçe veya çıkarıldıkça bu numaraların anında güncellenmesini bekleyebilirsiniz - herhangi bir manuel müdahale olmadan her zaman güncel bir sıra sağlar.
Formül kullanarak bitişik hücre boş olmadığında satırları otomatik numaralandırma
VBA kodu kullanarak bitişik hücre boş olmadığında satırları otomatik numaralandırma
Formül kullanarak bitişik hücre boş olmadığında satırları otomatik numaralandırma
Bitişik hücre değerlerine dayalı dinamik satır numaralandırmasını gerçekleştirmenin etkili bir yolu, Excel formülü kullanmaktır. Bu yaklaşımla, satır numaraları yalnızca bitişik hücrede bir değer olduğunda görüntülenir. Bu hücrelere veri ekleme veya silme yaptığınızda, numaralandırma otomatik olarak güncellenir. İşte kullanabileceğiniz pratik bir yöntem:
1. Numaralandırmayı başlatmak istediğiniz hücreyi seçin (örneğin, verileriniz B2'de başlıyorsa A2). Aşağıdaki formülü girin:
=IF(B2<>"",COUNTA($B$2:B2),"")
2. Ardından, formülü diğer satırlara uygulamak için dolgu kulpuyla verilerinizin yanından aşağıya doğru sürükleyin. Numaralandırma otomatik olarak ayarlanacak ve yalnızca B sütununda veri bulunan satırlar için numara görüntülenecektir.
Eğer numaralar beklendiği gibi güncellenmiyorsa, formülün tüm ilgili satırlara kopyalandığından ve aralığınızı engelleyen birleştirilmiş hücreler veya veri doğrulamaları olmadığından emin olun. Formüller, doğru referanslamaya dayanır ve çalışma sayfasının yapısındaki değişikliklerden etkilenebilir.
VBA kodu kullanarak bitişik hücre boş olmadığında satırları otomatik numaralandırma
Daha gelişmiş kullanıcılar için ya da formülleri çalışma sayfanız boyunca uygulamak istemediğiniz durumlarda — ya da veri yapıştırırken, blokları kaldırırken veya sık sık değişiklik yaparken bile numaralandırmanın güncellenmesi gerektiğinde — VBA makrosu güçlü bir alternatif sunar. VBA kullanarak, formüller olmadan herhangi bir zamanda bitişik hücre düzenlendiğinde bir sütundaki satır numaralarını otomatik olarak güncelleyebilirsiniz. Bu, veri giriş formları, ithalat günlükleri veya sık sık düzen değişiklikleri yapılan görev listeleri için idealdir.
1. Visual Basic for Applications editör penceresini açmak için Alt + F11 tuşlarına basın. Proje Gezgini'nde çalışma kitabınızı bulun, ardından "Microsoft Excel Nesneleri" altında ilgili çalışma sayfasına (örneğin, “Sayfa1”) çift tıklayın.
2. Görüntülenen kod penceresine aşağıdaki kodu yapıştırın. Bu örnek, B sütununun boş olmadığına göre A sütunundaki satırları numaralandırmak istediğinizi varsayar; gerekirse belirli aralıklar için referansları ayarlayabilirsiniz:
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 düzenleyiciyi kaydedip kapatın. Şimdi, B sütununa içerik eklediğinizde, düzenlediğinizde veya temizlediğinizde, A sütunu hemen yeniden numaralandırılacak ve verinin varlığına (veya yokluğuna) uygun şekilde yansıyacaktır. B sütununa giriş ekledikçe veya çıkardıkça sıra yukarı veya aşağı kayar.
Notlar ve Önlemler: Bu makro, hücre düzenlemelerine yanıt vermesi için özellikle istenen çalışma sayfası kod penceresine yerleştirilmelidir (bir modülde veya ThisWorkbook'da değil). Ayrıca, kodun çalışması için Excel ayarlarınızda makroların etkinleştirildiğinden emin olun. Eğer "veri aralığınız" A ve B sütunlarının dışına kayarsa, Set chk = Intersect(Target, Me.Columns("B"))
ve Call RenumberNonBlank(Me, "B", "A", 2)
referanslarını buna göre güncelleyin.
Sorun Giderme: Eğer numaralandırma güncellenmiyorsa, doğru çalışma sayfasını düzenlediğinizden ve kodun uygun çalışma sayfası kod penceresine yerleştirildiğinden emin olun. Ayrıca, çalışma kitabını makro etkin dosya (.xlsm) olarak kaydettiğinizden emin olun. Beklenmedik hatalar için, birleştirilmiş hücreler veya başlık satırlarındaki veriler gibi çalışma sayfanızın yapısını değiştirmemiş olduğunuzu tekrar kontrol edin.
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar. En çok ihtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
- Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!