Yinelenen numaralar

apogate

Altın Üye
Katılım
17 Kasım 2007
Mesajlar
60
Excel Vers. ve Dili
Tr 2021 32 bit
Altın Üyelik Bitiş Tarihi
09-09-2029
Excel ve Access tek sutundaki yinelenenleri başarılı bir şekilde filtreleyebiliyor.Fakat 2 sutuna ve fazlasına gelince bizlere fazla seçenek sunamıyor.Şöyle açıklayayım.
A sutunu telefon numaralarından B sutunuda isimlerden oluşsun,B sutunundaki alfabetik hatalardan dolayı(Ayhan-Ayhen) farklı veri olarak algılandığından A sutunundaki numara aynı dahi olsa her ikisini birden E ve F sutununa kopyalamış oluyoruz yada filtrelemeyi istediğimiz gibi yapamıyoruz.Bu şekilde yine mükerrer kayıt elde etmiş oluyoruz.Bunun önceliğini A sutununa verebilecek formul varmıdır,Demek istediğim A sutunundaki mükerrer kayıtların sadece tekini alsın B sutunundakileri dikkate almadan A ve B sutunu olarak taşısın.Burada öncelik telefon numarası olsun B sutunundanda hangisini seçerse seçsin farketmez.Bu şekilde tekraralanan numaraları filtreliyecek formül bulamadım.Neticesince ben işadamıyım ms office hakkında fazla bir bilgiye sahip değilim ve olamamda fakat basit formül ve biçimlendirmeleri kullanmak isterim,bu kadar basit bir filtrelemeyi microsoft daha kolay bir seçenek ile sunamazmıydı.Şu anda binlerce satırı tek tek silmekle meşguluz.Hiç bir forum sitesinin paylaşımlarında çözüme ulaşamadık.
Altta örnekteki gibi asıl istenen numaralar ve en azından doğru yada yanlış karşılığına gelen isimler olmalı,İstenen 1 adet telefon ve karşılığı olan ad soyad
A sütunu----B sütunu--------D sütunu---E sütunu
5569940281 SELIM ERGIN----5569940281 SELIM ERGIN
5569940281 SELİM ERGiN---- 5559838009 OZHAN SOYLU
5559838009 ÖZHAN SOYLU---5569931305 SINEM AKKAYA
5559838009 OZHAN SOYLU
5569931305 SINEM AKKAYA
5569931305 SINEM EKKAYA
5569931305 SINM AKKAYA
 

Ekli dosyalar

Son düzenleme:

Bagcivan

Altın Üye
Katılım
7 Ağustos 2008
Mesajlar
193
Excel Vers. ve Dili
office 2019 türkçe
Altın Üyelik Bitiş Tarihi
11-10-2027
Merhabalar,

Bu tarz mükerrer kayıtlar benim de işimi biraz zora sokuyor.
Şöyle bir çözüm ürettim;

Öncelikle (size göre) numaraları farklı bir sütuna kopyalarıp, yinelenenleri kaldır yapalım.
daha sonra düşey ara ile o numaralara denk gelen isimleri alıyorum ve elimde mükerrer olmayan bir liste kalıyoru.
 

apogate

Altın Üye
Katılım
17 Kasım 2007
Mesajlar
60
Excel Vers. ve Dili
Tr 2021 32 bit
Altın Üyelik Bitiş Tarihi
09-09-2029
Bacivan bey;Binlerce benzer numaradan bahsediyorum.Numaraları farklı sutuna kopyalamak tamam ,fakat karşılığına denk gelen isimleri düşey arada bulup ,nasıl benzersiz numaraların yanına taşıyacağız ,boyamak ,renklendirmek ve işaretlemek çözüm değil.
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Accessde sorgularla çok kolay yapılır,
tablo oluşturun, bilgileri girin,
sorgu oluşturayım hemen...
 
Katılım
28 Ekim 2009
Mesajlar
101
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2013 TR 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
23.10.2019
Merhaba apogate

Makro yazmamı istermisin?
 
Katılım
28 Ekim 2009
Mesajlar
101
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2013 TR 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
23.10.2019
Dosya ekleme şansınız varsa ekleyin.Daha çabuk netice alırsınız.
 

apogate

Altın Üye
Katılım
17 Kasım 2007
Mesajlar
60
Excel Vers. ve Dili
Tr 2021 32 bit
Altın Üyelik Bitiş Tarihi
09-09-2029
Evet lütfen.Excelde yinelen kayıtları sil dediğimde ikinci sutundaki isimler alakasız numaralara kayıyor.Excel de tekrar eden numaraları silip boş satırları yukarıya kaydırmayan ,silinen hücreleri boş bırakan makro yazabilsek sorun kalmayacak.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,232
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Excelde yerleşik menülerde yapamadığınız işlemleri formüller yardımı ile çözümleyebilirsiniz. Formüllerde yetersiz kalırsa makro kullanarak çözümler üretilebilir. Forumdaki en çok sorulan sorulardan biriside mükerrer kayıtlarla ilgili sorulardır. Aşağıdaki linkte güzel örnekler var. İncelerseniz farklı bakış açıları kazanabilirsiniz.

Mükerrer kayıt uygulamaları

Ben sizin örnek olarak verdiğiniz verileri kullanarak bir örnek dosya hazırladım.
Dosyada "C" sütunu yardımcı sütun olarak kullanılmıştır. Benzeşen kayıtların ilkine artan sıra numarası veriyor. Siz kendi dosyanızdaki veri kadar bu sütundaki formülleri alt hücrelere sürükleyin.

Daha sonra mavi renkli alanda bu sıra numaraları kullanılarak veriler alınıyor.

İnceleyiniz.
 

Ekli dosyalar

apogate

Altın Üye
Katılım
17 Kasım 2007
Mesajlar
60
Excel Vers. ve Dili
Tr 2021 32 bit
Altın Üyelik Bitiş Tarihi
09-09-2029
Teşekkürler.Verdiğiniz örnek belirli bir hücre sayısına kadar kesinlikle işe yarıyor,Fakat formül 50 bin hücreyi aşıca excel çöküyor ve 150 bin satır üstünde bu formül imkansız..Office 2007 kullanıyorum,dolayısı ile satır sayısı sorunum yok.Uzun zamandır çeşitli forum sitelerinde yardım arıyorum,hala kesin çözüme ulaşamadım,ilginç!!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,232
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Veri sayınız bu kadar çoksa makro kullanmak daha uygun olur.

Aşağıdaki kodu deneyin. İşlem süresini paylaşırsanız sevinirim.

Kod:
Option Explicit

Sub Mukerrer_Kayitları_Temizle()
    Dim Alan As Variant, X As Long, Son As Long, SD As Object, Say As Long, Zaman As Double
    
    Application.ScreenUpdating = False
    
    Zaman = Timer
    Son = Cells(Rows.Count, 1).End(3).Row
    Alan = Range("A2:B" & Son)
    Set SD = CreateObject("Scripting.Dictionary")
    
    Range("E2:F" & Rows.Count).ClearContents
    
    ReDim Dizi(1 To 2, 1 To Son)
    
    For X = LBound(Alan) To UBound(Alan)
        If Not Len(Alan(X, 1)) = 0 And Not SD.Exists(Alan(X, 1)) Then
            SD.Add Alan(X, 1), Nothing
            Say = Say + 1
            Dizi(1, Say) = Alan(X, 1)
            Dizi(2, Say) = Alan(X, 2)
        End If
    Next
    
    If Say > 0 Then
        ReDim Preserve Dizi(1 To 2, 1 To Say)
        Cells(2, "E").Resize(Say, 2) = Application.Transpose(Dizi)
        Application.ScreenUpdating = True
        MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & "İşlem süresi ; " & Format((Timer - Zaman), "0.000") & " Saniye", vbInformation
    End If

    Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

apogate

Altın Üye
Katılım
17 Kasım 2007
Mesajlar
60
Excel Vers. ve Dili
Tr 2021 32 bit
Altın Üyelik Bitiş Tarihi
09-09-2029
Oldu gibi.50 bin satırda benzersiz kayıtları 32 saniyede kopyalamayı başarıyor.Fakat 100 bin satır üstünde run time error veriyor.Yinede benim için yeterli 50 binlik satırlar halinde yapabilirim sanıyorum.Teşekkürler.
 
Üst