📝 İçerik (Kopyalayıp Doğrudan Paylaşabilirsiniz)
Selamlar değerli Excelcozum.com dostları ve hocaları,
İş hayatında hepimizin başına en az bir kez gelmiştir: ERP sistemlerinden, loglardan veya başka veri tabanlarından Excel’e binlerce satırlık veri çekeriz. Bu verilerin arasında yüzlerce anlamsız, boş satır kalır.
Genelde bu boş satırları temizlemek için internette arama yaptığımızda karşımıza hep klasik bir For-Next döngüsü çıkar. Kod aşağıdan yukarıya doğru tek tek satırları kontrol edip siler. Küçük tablolarda bu kod iş görür ama satır sayısı 20 binleri, 50 binleri geçtiği an o Excel bir kilitlenir, o yuvarlak imleç döner durur... Bazen de Excel tamamen yanıt vermeyi keser.
Bugün, büyük verilerde döngüye girip Excel’i yormadan, tüm boş satırları tek seferde ve 1 saniyede uçuran çok daha profesyonel bir yöntemi ve kod bloğunu paylaşmak istedim.
🚀 Performans Odaklı Makro Kodumuz:
Aşağıdaki kodu boş satırları silmek istediğiniz sayfanın VBA editörüne (ALT + F11) ekleyebilirsiniz. Kod, tüm hücreleri tek tek gezmek yerine Excel'in kendi SpecialCells özelliğini kullanarak doğrudan hedefe odaklanır.
📌 Bu Kod Neden Kasmıyor? (İşin Sırrı Nedir?)
⚠️ Küçük Bir Uyarı (Tecrübe Notu):
Bu kod, A sütunundaki boşlukları baz alarak tüm satırı siler. Eğer A sütununuz boş ama yanındaki B veya C sütununda önemli verileriniz varsa, o satır da silinir. Bu yüzden kodu çalıştırmadan önce tablonuzda her zaman dolu olan (Örn: ID, Sıra No, Cari Adı vb.) anahtar sütunu kod içerisindeki Cells(Rows.Count, "A") kısmından değiştirmeyi unutmayın.
Ben büyük veri setlerinde bu pratik metodu kullanıyorum ve inanılmaz zaman kazanıyorum.
Peki siz bu tarz büyük tablolarda boş satır temizliğini nasıl yapıyorsunuz? Forumdaki hocalarımızın Power Query ile veya farklı dizi (Array) yöntemleriyle daha performanslı alternatifleri var mıdır? Yorumlarınızı ve alternatif tekniklerinizi aşağıya bekliyorum, hep birlikte geliştirelim!
Selamlar değerli Excelcozum.com dostları ve hocaları,
İş hayatında hepimizin başına en az bir kez gelmiştir: ERP sistemlerinden, loglardan veya başka veri tabanlarından Excel’e binlerce satırlık veri çekeriz. Bu verilerin arasında yüzlerce anlamsız, boş satır kalır.
Genelde bu boş satırları temizlemek için internette arama yaptığımızda karşımıza hep klasik bir For-Next döngüsü çıkar. Kod aşağıdan yukarıya doğru tek tek satırları kontrol edip siler. Küçük tablolarda bu kod iş görür ama satır sayısı 20 binleri, 50 binleri geçtiği an o Excel bir kilitlenir, o yuvarlak imleç döner durur... Bazen de Excel tamamen yanıt vermeyi keser.
Bugün, büyük verilerde döngüye girip Excel’i yormadan, tüm boş satırları tek seferde ve 1 saniyede uçuran çok daha profesyonel bir yöntemi ve kod bloğunu paylaşmak istedim.
🚀 Performans Odaklı Makro Kodumuz:
Aşağıdaki kodu boş satırları silmek istediğiniz sayfanın VBA editörüne (ALT + F11) ekleyebilirsiniz. Kod, tüm hücreleri tek tek gezmek yerine Excel'in kendi SpecialCells özelliğini kullanarak doğrudan hedefe odaklanır.
📌 Bu Kod Neden Kasmıyor? (İşin Sırrı Nedir?)
- Döngü Yok (No Loop): 50.000 satırı tek tek kontrol etmek yerine, Excel bellek düzeyinde boş hücrelerin adres haritasını çıkarır (xlCellTypeBlanks) ve hepsini tek bir hamlede (EntireRow.Delete) siler.
- Ekranı Dondurma (ScreenUpdating = False): Excel satırları silerken her silme işleminde ekranı yeniden çizmeye çalışmaz. Arka planda işi bitirir ve tek seferde bize gösterir.
- Hesaplamayı Durdurma (Calculation = xlCalculationManual): Eğer sayfanızda ağır formüller varsa, her satır silindiğinde formüllerin baştan tetiklenmesini engelleriz.
⚠️ Küçük Bir Uyarı (Tecrübe Notu):
Bu kod, A sütunundaki boşlukları baz alarak tüm satırı siler. Eğer A sütununuz boş ama yanındaki B veya C sütununda önemli verileriniz varsa, o satır da silinir. Bu yüzden kodu çalıştırmadan önce tablonuzda her zaman dolu olan (Örn: ID, Sıra No, Cari Adı vb.) anahtar sütunu kod içerisindeki Cells(Rows.Count, "A") kısmından değiştirmeyi unutmayın.
Ben büyük veri setlerinde bu pratik metodu kullanıyorum ve inanılmaz zaman kazanıyorum.
Peki siz bu tarz büyük tablolarda boş satır temizliğini nasıl yapıyorsunuz? Forumdaki hocalarımızın Power Query ile veya farklı dizi (Array) yöntemleriyle daha performanslı alternatifleri var mıdır? Yorumlarınızı ve alternatif tekniklerinizi aşağıya bekliyorum, hep birlikte geliştirelim!