Skip to main content

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

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

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


arrow blue right bubble 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),"")
İpucu: Bu formül, B2 hücresinin boş olmadığını kontrol eder. Eğer B2'de veri varsa, şu anki satıra kadar olan B2'den aşağıya doğru tüm boş olmayan hücreleri sayar ve değer içeren satırlar için sürekli bir sıra oluşturur. Eğer B2 boşsa, formül boş döner ve sıra hücresi boş kalır.

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.

autonumber if not blank with formula

Not: Bu yöntem, özellikle yeni verilerin herhangi bir zamanda eklenmesi, silinmesi veya değiştirilmesi durumlarında faydalıdır çünkü sıra, manuel yeniden numaralandırma veya hesaplama gerektirmeden her zaman doğru kalır. Ancak, boş hücreler verilerinizin bir parçası olarak bulunuyorsa (örneğin, kasıtlı boşluklar), bu satırlar numaralandırılmayacaktır.

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.


arrow blue right bubble 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 AI Asistanı: Veri analizinde devrim yaratın: Akıllı Yürütme   |  Kod Oluştur  |  Özel Formüller Oluştur  |  Verileri Analiz Et ve Grafikler Oluştur  |  Geliştirilmiş İşlevleri Çağır
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya İşaretle   |  Boş Satırları Sil   |  Sütunları veya Hücreleri Verileri Kaybetmeden Birleştir   |   Formül Olmadan Yuvarla ...
Süper ARA: Çok Kriterli Düşeyara    Çoklu Değer Düşeyara  |   Çoklu sayfa araması   |   Bulanık Eşleme ....
Gelişmiş Açılır Liste: Hızlıca Açılır Liste Oluştur   |  Bağımlı Açılır Liste   |  Çoklu Seçimli Açılır Liste ....
Sütun Yöneticisi: Belirli Sayıda Sütun Ekle  |  Sütunları Taşı  |  Gizli Sütunların Görünürlük Durumunu Değiştir  |  Aralıkları ve Sütunları Karşılaştır ...
Öne Çıkan Özellikler: Izgara Odaklama   |  Tasarım Görünümü   |   Gelişmiş formül çubuğu    Çalışma Kitabı & Çalışma Sayfası Yöneticisi   |  Otomatik Metin Kütüphanesi (Auto Text)   |  Tarih Seçici   |  Veri Birleştir   |  Hücreleri Şifrele/Şifre Çöz    Listeye Göre E-posta Gönder   |  Süper Filtre   |   Özel Filtre (kalın/italik/üstü çizili filtrele...) ...
En İyi15 Araç Seti12 Metin Aracı (Metin Ekle, Belirli Karakterleri Sil, ...)   |   50+ Grafik Türü (Gantt Grafiği, ...)   |   40+ Pratik Formül (Doğum tarihine dayanarak yaş hesapla, ...)   |   19 Ekleme Aracı (QR Kodu Ekle, Yoldan Resim Ekle, ...)   |   12 Dönüşüm Aracı (Kelimeye Dönüştür, Para Birimi Dönüştürme, ...)   |   7 Birleştir & Böl Aracı (Gelişmiş Satırları Birleştir, Hücreleri Böl, ...)   |   ... ve daha fazlası

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!