Uzun Excel Listelerinin Süzülüp, Satır Kaydırılması Hakkında Yardım İhtiyacı

Katılım
17 Ağustos 2024
Mesajlar
3
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Merhabalar. Yardıma ihtiyacım var: Excel de 71.000 küsür satırdan oluşan bir listem var. Örnek olarak veriler:
#EXTINF:-1 ,✪✪✪✪✪ ULUSAL ✪✪✪✪✪
Bunlar notepad den kopyaladığım m3u adresleridir. Bu verileri Excele yapıştırdım. Önce sağa bir sütün ekliyorum. adına 'X' diyorum B Sütununda örneklediğim liste verileri var. Süzme fonksiyonu kullanarak B sütunun (#EXTINF:-1 ) verisini süzdürüp, A sütununda aşağı kadar '1' yazıyorum. B Sütünü süzme verilerini kaldırınca, A Sütununda 1 ve alt satırında boş hücre ortaya çıkıyor. Bul fonksiyonu 'özel git den Boşlukları seç yapıyorum. A Sütununda ki tüm boşlukları işaretleniyor. Gerçi bu oldukça zaman alıyor almasına ama, konu bu değil. A sütununda ki tüm boş hücreler seçildikten sonra CTR+ ile sağa kaydırılamıyor. Excel işlemi yapamıyor ve donup kalıp cevap vermiyor. Yada Excelden atıyor. 1000-2000 satırlık verilerde bunları yapabiliyorum. Maksadım alt alta olan iki satırı yana yan getirip A dan Z sıralatıp, aynı verilere sahip satırları silmek. Bu konuda yardımcı olabilecek birileri varsa memnun olurum. Lütfen satır sayısının 70.000 küsür olduğunu dikkate alıp, deneme yaptıktan sonra, çözüm önerilerinizi paylaşırsanız sevinirim. Diğer tüm yöntemleri ben zaten denedim. Yardımcı olabilecekler için şimdiden teşekkür ederim.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,483
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Lütfen satır sayısının 70.000 küsür olduğunu dikkate alıp, deneme yaptıktan sonra, çözüm önerilerinizi paylaşırsanız sevinirim
Dosya baglantınız sıfırlanıyor, siz indirmeyi ya da tıklamayı denediğinizde ne yapıyor ?


Excel'de Büyük Veri Kümesi Yönetimi
Excel'den Veriyi Kısmi İşleme
Excel ile büyük veri kümesi üzerinde çalışırken, veriyi daha küçük parçalara bölmek işlemi kolaylaştırabilir:
  1. Veriyi Bölme:
    • Verinizi daha küçük dosyalara bölebilirsiniz. Örneğin, her 10.000 satırı ayrı bir Excel dosyasına kaydedin ve işlemi bu dosyalar üzerinde gerçekleştirin.
  2. Filtreleme ve Sıralama:
    • Küçük parçalarda işlemler yapmak, daha az kaynak kullanımı sağlar ve Excel’in performansını artırabilir.
3. Excel’de Performansı Artırma
  • Formülleri Azaltma:
    • Excel’de karmaşık formüllerden ve hesaplamalardan kaçının. Mümkünse, formüller yerine sabit veriler kullanın.
  • Excel’i Yeniden Başlatma:
    • Performans sorunlarını hafifletmek için Excel’i kapatıp açarak belleği temizleyebilirsiniz.
Alternatif Araçlar ve Yöntemler
4. Veri Tabanı Yazılımları Kullanma
Büyük veri kümesi ile çalışmak için Excel dışında veri tabanı yazılımları veya daha güçlü araçlar kullanabilirsiniz:
  • Microsoft Access: Veri tabanı oluşturup yönetmenizi sağlar. Büyük veri kümeleri için daha uygun olabilir.
  • Google Sheets: Büyük veri kümeleriyle çalışmak için daha uygun olabilir ve veri yönetimi araçları sunar.
  • Python veya R Kullanarak Veri Analizi:
    • Python ve R gibi programlama dilleri, büyük veri kümeleri üzerinde daha etkili analiz ve manipülasyon yapmanızı sağlar. Pandas ve NumPy gibi kütüphaneler Python’da veri işleme için oldukça etkilidir.
5. Excel’de Veri Temizleme İçin Makro Kullanma
Excel makroları (VBA) kullanarak veri temizleme işlemlerini otomatikleştirebilirsiniz:
  • Makro Oluşturma:
    • Verilerinizi işlemek için VBA makroları yazabilirsiniz. Bu, büyük veri kümesiyle çalışırken işlemi otomatikleştirebilir.


      Belki işinize yarar ya da bu bilgiyi kendiniz de uygulayabilirsiniz. KOPYA BİR DOSYADA DENEYİN
Aşağıdaki VBA kodu, boş hücreleri temizleyip, verileri sıralamayı ve aynı verileri olan satırları silmeyi sağlar:

Kod:
Sub CleanAndSortData()
    Dim ws As Worksheet
    Dim lastRow As Long
    
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Sayfa adını uygun şekilde değiştirin
    
    ' Son satırı bulma
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' Boş hücreleri temizleme
    ws.Range("A1:A" & lastRow).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
    
    ' Verileri sıralama
    ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row).Sort Key1:=ws.Range("A1"), Order1:=xlAscending, Header:=xlNo
    
    ' Aynı verileri olan satırları silme
    Dim i As Long
    For i = lastRow To 2 Step -1
        If ws.Cells(i, 1).Value = ws.Cells(i - 1, 1).Value Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub
Not: Kodun çalışması için Excel VBA editorüne (Alt + F11) yapıştırıp, F5 ile çalıştırmanız gerekecek.

Ya da script.dictionary bilen bir usta farklı oneri de getirebilir.Ancak dosyanız goruntulenmiyor...
 
Katılım
17 Ağustos 2024
Mesajlar
3
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Dosya baglantınız sıfırlanıyor, siz indirmeyi ya da tıklamayı denediğinizde ne yapıyor ?


Excel'de Büyük Veri Kümesi Yönetimi
Excel'den Veriyi Kısmi İşleme
Excel ile büyük veri kümesi üzerinde çalışırken, veriyi daha küçük parçalara bölmek işlemi kolaylaştırabilir:
  1. Veriyi Bölme:
    • Verinizi daha küçük dosyalara bölebilirsiniz. Örneğin, her 10.000 satırı ayrı bir Excel dosyasına kaydedin ve işlemi bu dosyalar üzerinde gerçekleştirin.
  2. Filtreleme ve Sıralama:
    • Küçük parçalarda işlemler yapmak, daha az kaynak kullanımı sağlar ve Excel’in performansını artırabilir.
3. Excel’de Performansı Artırma
  • Formülleri Azaltma:
    • Excel’de karmaşık formüllerden ve hesaplamalardan kaçının. Mümkünse, formüller yerine sabit veriler kullanın.
  • Excel’i Yeniden Başlatma:
    • Performans sorunlarını hafifletmek için Excel’i kapatıp açarak belleği temizleyebilirsiniz.
Alternatif Araçlar ve Yöntemler
4. Veri Tabanı Yazılımları Kullanma
Büyük veri kümesi ile çalışmak için Excel dışında veri tabanı yazılımları veya daha güçlü araçlar kullanabilirsiniz:
  • Microsoft Access: Veri tabanı oluşturup yönetmenizi sağlar. Büyük veri kümeleri için daha uygun olabilir.
  • Google Sheets: Büyük veri kümeleriyle çalışmak için daha uygun olabilir ve veri yönetimi araçları sunar.
  • Python veya R Kullanarak Veri Analizi:
    • Python ve R gibi programlama dilleri, büyük veri kümeleri üzerinde daha etkili analiz ve manipülasyon yapmanızı sağlar. Pandas ve NumPy gibi kütüphaneler Python’da veri işleme için oldukça etkilidir.
5. Excel’de Veri Temizleme İçin Makro Kullanma
Excel makroları (VBA) kullanarak veri temizleme işlemlerini otomatikleştirebilirsiniz:
  • Makro Oluşturma:
    • Verilerinizi işlemek için VBA makroları yazabilirsiniz. Bu, büyük veri kümesiyle çalışırken işlemi otomatikleştirebilir.


      Belki işinize yarar ya da bu bilgiyi kendiniz de uygulayabilirsiniz. KOPYA BİR DOSYADA DENEYİN
Aşağıdaki VBA kodu, boş hücreleri temizleyip, verileri sıralamayı ve aynı verileri olan satırları silmeyi sağlar:

Kod:
Sub CleanAndSortData()
    Dim ws As Worksheet
    Dim lastRow As Long
   
    Set ws = ThisWorkbook.Sheets("Sheet1") ' Sayfa adını uygun şekilde değiştirin
   
    ' Son satırı bulma
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
   
    ' Boş hücreleri temizleme
    ws.Range("A1:A" & lastRow).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
   
    ' Verileri sıralama
    ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row).Sort Key1:=ws.Range("A1"), Order1:=xlAscending, Header:=xlNo
   
    ' Aynı verileri olan satırları silme
    Dim i As Long
    For i = lastRow To 2 Step -1
        If ws.Cells(i, 1).Value = ws.Cells(i - 1, 1).Value Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub
Not: Kodun çalışması için Excel VBA editorüne (Alt + F11) yapıştırıp, F5 ile çalıştırmanız gerekecek.

Ya da script.dictionary bilen bir usta farklı oneri de getirebilir.Ancak dosyanız goruntulenmiyor...


----------------------------------------------------------------------------------------------------------------------------------------------------------------
Detaylı ve ivedi cevap için teşekkür ederim. Malesef veriyi azaltıp (194 kb) 1140 satıra kadar düşürdüm. Yine tam istediğim olmadı. İkinci satıraları yan hücreye kaydırıp Ctr - ile yukarı satıra kaydırabildim. A to Z Sort yaptım. İkinci kolonu takrar alt satıra getirdim. A kolon altındaki tüm satırların altına . satır açtım. B kolonda ki verileri A kolonda ki boşluk olan hücrelerin hepsini işarteleyip, oraya kaydırmak istediğimde, yine Excel dondu (Yanıt Vermiyor) görünüyor. Google Sheets da da denemiştim. Süzme kriteri sonrası hücre kaydırma işleminde sadece süzülen verilere değil tüm kolona uyguluyor. Bu sebeple orada da yapamadım. Yukarıda belirtmiş olduğunuz diğer yazılımları ve VBA kodunun nasıl uygulanacağına dair bir fikrim malesef yok. Denemelere devam. Her türlü destek ve yardım için şimdiden teşekkür ederim.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,483
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Bir scripting.dictionary önerisi , bunu da başka bir kopyada deneyin sonucu bilmiyorum dosyanız yok


Excel'de verileri daha verimli bir şekilde işlemek için bir Scripting.Dictionary nesnesi kullanabilirsiniz. Scripting.Dictionary, verileri anahtar-değer çiftleri olarak saklamanızı sağlar ve tekrar eden verileri kolayca ayıklamanıza yardımcı olabilir. Bu yaklaşımı VBA makrosu içinde kullanarak, veri setinizdeki tekrar eden satırları temizleyebilir ve sıralayabilirsiniz.
Aşağıda, Scripting.Dictionary kullanarak A sütunundaki verileri işlemek için bir VBA makrosu örneği bulunmaktadır. Bu makro, boş hücreleri temizleyecek, aynı verileri olan satırları kaldıracak ve sonuçları sıralayacaktır.
VBA Makrosu ile Scripting.Dictionary Kullanımı
  1. Excel'de VBA Editor'ü Açma:
    • Excel'de Alt + F11 tuşlarına basarak VBA editor'ü açın.
  2. Yeni Bir Modül Ekleyin:
    • Insert menüsünden Module seçeneğine tıklayarak yeni bir modül oluşturun.
  3. Aşağıdaki Kodu Yapıştırın ve save tuşundan sonra f5 e basın kodlar çalışır


Kodu Açıklama:
  1. Scripting.Dictionary Nesnesi:
    • CreateObject("Scripting.Dictionary") ile yeni bir dictionary nesnesi oluşturuluyor.
    • Bu nesne, verileri anahtar-değer çiftleri olarak saklar. Aynı anahtarı (yani veri değerini) tekrar eklemeye izin vermez, bu nedenle tekrar eden veriler otomatik olarak ayıklanır.
  2. Boş Hücreleri Temizleme ve Verileri Toplama:
    • A sütunundaki veriler döngüye alınır. Boş olmayan hücreler dictionary'ye eklenir.
    • Aynı veriler dictionary'de yalnızca bir kez saklanır.
  3. Verilerin A Sütununa Yazılması ve Sıralama:
    • Dictionary'den elde edilen benzersiz veriler A sütununa yazılır.
    • Veriler sıralanır ve sonuç kullanıcıya bir mesaj kutusuyla bildirilir.
Bu VBA makrosu, büyük veri kümeleri ile çalışırken daha verimli ve hızlı bir veri işleme yöntemi sunar. Verileri Scripting.Dictionary kullanarak işlemek, aynı verileri olan satırları kolayca temizlemenize ve kalan verileri sıralamanıza olanak tanır. Makroyu çalıştırarak veri setinizdeki tekrar eden verileri kaldırabilir ve sonuçları düzenleyebilirsiniz.

Kod:
Sub CleanAndSortDataUsingDictionary()
Dim ws As Worksheet
Dim dict As Object
Dim lastRow As Long
Dim i As Long
Dim cellValue As String
Dim uniqueValues As Collection

Set ws = ThisWorkbook.Sheets("Sheet1") ' Sayfa adını uygun şekilde değiştirin
Set dict = CreateObject("Scripting.Dictionary")
Set uniqueValues = New Collection

' Son satırı bulma
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

' Boş hücreleri kaldırma ve verileri dictionary'ye ekleme
For i = 1 To lastRow
cellValue = ws.Cells(i, 1).Value

If Not IsEmpty(cellValue) Then
If Not dict.exists(cellValue) Then
dict.Add cellValue, Nothing
uniqueValues.Add cellValue
End If
End If
Next i

' Verileri A sütununa yazma
ws.Range("A1:A" & lastRow).ClearContents
For i = 1 To uniqueValues.Count
ws.Cells(i, 1).Value = uniqueValues(i)
Next i

' Verileri sıralama
ws.Range("A1:A" & uniqueValues.Count).Sort Key1:=ws.Range("A1"), Order1:=xlAscending, Header:=xlNo

MsgBox "Veri temizleme ve sıralama işlemi tamamlandı!"
End Sub
 
Son düzenleme:
Katılım
17 Ağustos 2024
Mesajlar
3
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Teşekkür ederim. Bölerek (1500-2000 satırla bölerek) ve birazda bekleyerek işlemi tamamlıyorum.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,483
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Umarım yontemlerden biri işinizi bekleyerek bolerek vs de olsa gorur.
Script yonteminde cok daha uzun verilerin baska sorularda 1 dk dan az surede oldugunu hatırlıyorum ve surprizi hızlı ve cihazı exceli sorunlamadan bitiriyordu . Belki tek kezde tamamı hallolur veri türlerine cok baglı bir konu olabilir. Aklınızda olsun birleştirilmiş hucreler varsa genelde donma sebebi olabilir, makro ya da script orda napıcanı sasırır. Benim naciz deneme fikrim once 100 satır alıp ikisinde de denemek olurdu ve once dogrular sonra butun dener eger takılma olursa bolerdim.
Siz artık işe yararsa hangisi cozdu son bilgi atarsanız sevinirim
 
Üst