Excel'de bitişik hücre boş değilse satırları otomatik olarak nasıl numaralandırabilirim?

Excel’de sayı serileri oluşturmak için doldurma tutamacını (fill handle) kullanmak, listelerde seri numaraları veya indeksler üretmenin yaygın bir yöntemidir. Ancak çoğu zaman, bitişik hücrede veri olduğunda satırları numaralandırmak isterken, o hücre boşsa numaralandırmayı atlamak isteyebilirsiniz. Örneğin, bir listede satır sayısını otomatik olarak belirlemek ama yalnızca bitişik veri hücreleri doluysa numara vermek gibi. Ayrıca, veri eklendiğinde veya silindiğinde bu numaraların anında güncellenmesini ve manuel müdahale gerektirmeden her zaman doğru sıralamayı sağlamasını bekleyebilirsiniz.
Bitişik hücre boş değilse formülle satırları otomatik olarak numaralandırın
Bitişik hücre boş değilse VBA koduyla satırları otomatik olarak numaralandırın
Bitişik hücre boş değilse formülle satırları otomatik olarak numaralandırın
Bitişik hücre değerlerine göre dinamik satır numaralandırması yapmanın en verimli yolu, bir Excel formülü kullanmaktır. Bu yöntemle, satır numarası yalnızca bitişik hücrede bir değer olduğunda görüntülenir. Hücrelere veri eklediğinizde veya sildiğinizde, numaralandırma otomatik olarak buna göre güncellenir. İşte kullanabileceğiniz pratik bir yöntem:
1. Numaralandırmaya başlamak istediğiniz hücreyi seçin (örneğin, verileriniz)B2'den başlıyorsa, A2). Aşağıdaki formülü girin:
=IF(B2<,>,"",COUNTA($B$2:B2),"") 2. Ardından, bu formülü diğer satırlara uygulamak için doldurma tutamacını verilerinizin sonuna kadar aşağı doğru sürükleyin. Numaralandırma, yalnızca B sütununda veri içeren satırlar için sayıları otomatik olarak gösterecek şekilde ayarlanacaktır.

Sayılar beklenildiği gibi güncellenmiyorsa, formülün ilgili tüm satırlara doğru şekilde kopyalandığından ve aralığınızda birleştirilmiş hücrelerin veya veri doğrulama kurallarının işlemi engellemediğinden emin olun. Formüller doğru referanslara dayanır; ancak çalışma sayfasında yapılan yapısal değişikliklerden olumsuz etkilenebilirler.
Bitişik hücre boş değilse VBA koduyla satırları otomatik olarak numaralandırın
Daha deneyimli kullanıcılar için veya çalışma sayfanızda formül kullanmak istemediğiniz, veri yapıştırdığınız, blok sildiğiniz ya da sık sık değişiklik yaptığınız durumlarda VBA makrosu güçlü bir alternatif sunar. VBA kullanarak, bitişik hücrelerde düzenleme yapıldığında bir sütundaki satır sayısını formüllere gerek kalmadan otomatik olarak güncelleyebilirsiniz. Bu yöntem, veri giriş formları, içe aktarma günlükleri veya düzeni sık değişen görev listeleri için idealdir.
1. Visual Basic for Applications düzenleyici 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ındaki ilgili çalışma sayfasına (örneğin “Sheet1”) çift tıklayın.
2. Görüntülenen kod penceresine aşağıdaki kodu yapıştırın. Bu örnek, B sütununda veri varsa A sütunundaki satırları numaralandırmak istediğinizi varsayar; kendi aralığınız için referansları gerektiği gibi özelleştirebilirsiniz:
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üzenleyicisini kaydedip kapatın. Artık B sütununa içerik eklediğinizde, düzenlediğinizde veya temizlediğinizde, A sütunu hemen yeniden numaralandırılarak verinin varlığına (veya yokluğuna) göre güncellenecektir. B sütununa giriş eklediğinizde veya sildiğinizde, sıra otomatik olarak yukarı veya aşağı kayacaktır.
Notlar ve Önlemler: Bu makro, hücre düzenlemelerine yanıt verebilmesi için ilgili çalışma sayfasının kod penceresine yerleştirilmelidir (bir modüle veya ThisWorkbook’a değil). Ayrıca, kodun çalışması için Excel ayarlarınızda makroların etkin olduğundan emin olun. "Veri Aralığı" sütunları A ve B dışındaki sütunlara kaydedilmişse, Set chk = Intersect(Target, Me.Columns("B")) ve Call RenumberNonBlank(Me, "B", "A", 2) referanslarını buna göre güncelleyin.
Sorun Giderme: Numaralandırma güncellenmiyorsa, doğru çalışma sayfasını düzenlediğinizi ve kodun ilgili çalışma sayfasının kod penceresinde bulunduğunu tekrar kontrol edin. Ayrıca, çalışma kitabınızı makro destekli bir dosya (.xlsm) olarak kaydettiğinizden emin olun. Beklenmeyen hatalar oluşursa, çalışma sayfanızın yapısını (örneğin birleştirilmiş hücreler veya başlık satırlarındaki veriler) değiştirmemiş olduğunuzu tekrar gözden geçirin.
En İyi Office Üretkenlik Araçları
Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar