Benzersiz kayıtların diğer sayfaya kopyalanması

Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
arkadaşlar foruma katılalı daha bir kaç gün oldu. Ekteki örnekte iki ayrı liste var bu listelerdeki benzersiz satırların sayfa2 ye kopyalanmasını istiyorum nasıl yapabilirim yaklaşık 35000 satır var bunların yaklaşık 5000 i mükerrer forumları inceledim ama beceremiyorum lütfen beni aydınlatabilirmisiniz.
 
Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
Tam olarak istediğim bu değil eğer iki tane varsa ikisinide yazmasın sadece benzersiz olanları yazsın
 
S

Skorpiyon

Misafir
Sayın Semprass

bu zaten benzersiz olanları Sayfa2'ye aktarıyor.

Benzerlikten kastınız nedir ?
 
Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
yani anlatmak istediğim aynı sütunda (birebir aynı) iki adet varsa
ikisinide yazmasın
örnek;
425183 200ml BUGU ONLEYICI SPREY Alım Yok 1 3,50
425183 200ml BUGU ONLEYICI SPREY Alım Yok 1 3,50

bu satırın ikiside olmasın.
 
S

Skorpiyon

Misafir
Sayın Semprass,

zaten birebir olanları iki kez yazmıyor. Burada kullanılan Gelişmiş Otomatik Süz'ün Benzersiz Kayıtlar için olanıdır. Aynı kaydın 2 kez alınması zaten MÜMKÜN DEĞİLDİR.

Siz butona tıkladıktan sonra Sayfa 2'ye geçip verileri bir kez daha kontrol ediniz. Benzer kayıt olmadığını göreceksiniz.
 
Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
amacım zaten aynı olanlardan bir tanesini kopyalamak değil aynı olmayanı bulmak inşallah anlatabilmişimdir

E YENİYİM İŞTE NAPİM ANLAMIYO KALIN KAFA
 
S

Skorpiyon

Misafir
Sayın Semprass, öncelikle özür dilerim. Yukarıda ne istediğinizi açıkça yazmanıza rağmen, Ser'de Karadenizlilik var biraz, e saatte 12'yi geçince kafa durdu ve biz anlamakta geciktik. Yani hata sizde değil bende :)

Probleminiz kafama takıldı ve 1 yöntem buldum. Yalnız sıkıntı şudur ki; listenizde aynı üründen kaç kez mükerrer kayıt olma şansı var ? Eğer çok fazla olabilir derseniz maalesef işe yaramaz. Yok sadece 2 veya 3 kez mükerrer oluyor derseniz işinize yarayacaktır zannımca. Daha fazla derseniz 35000 kayıtta çok zaman alacaktır.

(Neden mi, 10.000 kalemde, 10 adet ürünü, 2 kez tekrarlatmak sureti ile denedim. Makinem P4 1.7 - 512 Ram. Süre : 15 dk.)

Kısaca mükerrer sayısı arttıkça, kullandığım döngü artacak ve zaman daha da uzayacaktır.

En azından aynı ürünün kaç kez mükerrer olabileceğine dair bir sayı söylerseniz ona göre düşüneyim birde.

Dosyayı şimdilik göndermiyorum.
 
Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
Heh Allah razı olsun bende cumadan yeni geldim en fazla 3 ama
sürekli 2 yani iki listede de aynı kayıt olacağından iki listeyi karşılaştırırsam 2.
 
S

Skorpiyon

Misafir
Ok, ben 2 liste karşılaştıracağınızı varsayarak 2 kez tekrarlanan kayıtlarda hata vermeyen eki gönderiyorum.

Ama 3 tekrar varsa, doğru işlem yapmayacaktır. BİLGİNİZE...

Ve umarım (ki saat gece 12 olmadığına göre) bu sefer doğru anlamışımdır :)

Saygılar,

Not : Listeler arasında BOŞ SATIR bırakmayınız. Ve sonuçtan haberdar ederseniz sevinirim.
 
Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
Allah razı olsun kardeşim tam istediğim gibi

Hatta fazlası olmuş aynı olanları boyamış ne güzel

3 mükerrerdede kabul atti saol tekrardan
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Ekli dosyayı inceleyiniz.
İstediğiniz böyle bir şeymi.:cool:
Not : Kaç tane benzer olduğu hiç farketmez.:cool:
Kod:
Sub tekrarsiz()
Dim sonsat As Long, sat As Long, aralık1 As String, aralık2 As String
sonsat = Cells(65536, "B").End(xlUp).Row
Sheets("Sayfa2").Range("A:B").ClearContents
sat = 1
aralık1 = Range(Cells(1, "A"), Cells(sonsat, "A")).Address
aralık2 = Range(Cells(1, "B"), Cells(sonsat, "B")).Address
For i = 1 To Cells(65536, "B").End(xlUp).Row
    Kriter1 = Cells(i, "A").Value
    Kriter2 = Cells(i, "B").Value
    bul = Evaluate("=SumProduct((" & aralık1 & "=""" & Kriter1 & """)*(" & aralık2 & "=""" & Kriter2 & """))")
    If bul = 1 Then
        adr1 = Range(Cells(i, "A"), Cells(i, "E")).Address
        adr2 = Range(Cells(sat, "A"), Cells(sat, "E")).Address
        Sheets("Sayfa2").Range(adr2).Value = Range(adr1).Value
        sat = sat + 1
    End If
Next
MsgBox "Benzersizler Sayfa2'ye Aktarıldı..!!"
End Sub
 
S

Skorpiyon

Misafir
Sayın Sezar Mükemmelsiniz,
biz acemice, bi kardeşimize derman olmaya çalışırken bi profesyonelin bu işe el atması çok iyi olmuş.

Böylece kafamın ne kadar kalın olduğunu bir kez daha gördüm :)

Neyse, öğrenmeye ve yola devam...
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Sayın Sezar Mükemmelsiniz,
biz acemice, bi kardeşimize derman olmaya çalışırken bi profesyonelin bu işe el atması çok iyi olmuş.

Böylece kafamın ne kadar kalın olduğunu bir kez daha gördüm :)

Neyse, öğrenmeye ve yola devam...
Bir sorunun çeşitli çözümleri olabilir.Arkadaşlar çözüm için önerilerini sunabilirler.
Bunun affedersiniz kalın kafalılıkla ilgisi olduğunu sanmıyorum ben sadece emek harcanmış bir çözüm olarak görüyorum..

yola devam........
 
S

Skorpiyon

Misafir
Destek için teşekkürler Sayın Zafer,

bıkmadık, bıkmayacağız inş.
 
Katılım
4 Temmuz 2007
Mesajlar
50
Excel Vers. ve Dili
Microsoft Office 2003 TR
Sayın SEZAR size'de teşekkür ederim. Elinize sağlık
Şu şekilde yapılabirmi acaba;
Sayfa2 ye atmasında mükerrerlerin hepsini silsin.
Yani eğer tekrar ediyorsa aslınıda silsin.
 
Katılım
4 Ocak 2005
Mesajlar
4
yazılan kodlar güzel de satır sayısı 750.000 olunca excelin yanına kasıntıdan yanaşılmıyor.

bir de kod olmadan şöyle bir formul var

aşağıdaki formulü,mesela X2 hücresine yazalım
=EĞER(A2="";"";EĞER(EĞERSAY(G:G;A2)>0;"1";"0"))

burada A bloğundaki bir veri G bloğunda varsa X2 hücresi 1 yoksa X2 hücresi 0 olarak değer alıyor. ve bu X2 satırını sağ alt köşesinden çift tıklarsak tüm satırlar otomatik olarak dolacaktır, değil mi

not: x2 hücresine 1 veya 0 değil de diğer bir hücrenin değeri yazılabilir

=EĞER(A2="";"";EĞER(EĞERSAY(G:G;A2)>0;"";A2))
burada a2.deki satır G bloğunda yoksa X2 hücresine A2.nin değeri yazılacaktır...

daha sora oluşan bu X bloğu sıralamaya tabi tutularak dolu hücreleri başka sayfaya alabiliriz :)
 

Korhan Ayhan

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

Ekteki örnek dosyayı incelermisiniz.
 
Katılım
4 Ocak 2005
Mesajlar
4
Selamlar,

Ekteki örnek dosyayı incelermisiniz.

KODLARINIZDA
Range("F2").AutoFill Destination:=Range("F2:F" & Range("B65536").End(3).Row), Type:=xlFillDefault
şeklindeki ifade için bir sorum olacak

Range("B65536") ifadesi sonuna kadar doldur demek midir? eğer öyle ise excel2007 için bu ifade nasıl olmalıdır? (bu sorumun ardından deneyeceğim)
ve
775bin satırlık veri için(excel2007) hızlı çalışır mı? :)
 
Üst