• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Tekrar eden verileri teke indirme ( Mükerrer Kayıt)

hadromer

Altın Üye
Katılım
23 Ekim 2015
Mesajlar
405
Excel Vers. ve Dili
LTSC Professional Plus 2021 64 Bit Türkçe
Merhaba,
Daha önce açmış olduğum konuda bana olan yardımlarınızdan dolayı öncelikle çok teşekkür ediyorum. Yine sizlerin yardımına ihtiyacım olduğu için konu açmak zorunda kaldım.

Başlıkta da belirttiğim gibi mükerrer kayıtları teke indirmek istiyorum.Forumda daha önce açılan konuları inceledim ama benim istediğim biraz farklı ,Elimde AB C D olmak üzere 4 sütunlu 8600 satır veri var.B ve D sütünunda tekrar eden veriler var. A ve C sütunları ise tekrar etmiyor. hal böyle olunca da yapamadım. Bunları tek tek silmem zaman alacağı için yardımlarınızı talep ediyorum.
Ekteki linkte örnek bir dosya var.Yapmak istediğim şey tam olarak ekledğim resimde mevcut. ÖRNEK DOSYA

 
Merhaba,

Şirket internetinde kısıtlama var. Dosyanızı aşağıdaki adrese yükleyebilir misiniz.

http://dosya.host/
 
sn hadromer
mükerrlerin ilkine ait satırı alıyor.
Kod:
Sub a()
say = Range("b65536").End(3).Row
For i = 2 To say
If Range("b" & i) <> Range("b" & i - 1) Then
say1 = Range("g65536").End(3).Row
Range("A" & i & ":D" & i).Copy Range("G" & say1 + 1)
End If
Next
End Sub
 
Yapmak istediğinizi Veri sekmesinde "Yinelenenleri Kaldır" aracı ile kolayca yapmak mümkün. Tüm tabloyu seçtikten sonra "Veri" - "Yinelenenleri Kaldır" yaptıktan sonra code ve percent'in onay kutucuklarını tıklayarak kaldırınız. Tamam dediğinizde kaldıracaktır.

Ancak, örneğinizde ARAF14A10 için Deel, 50, 0,06 olan satırı çizgi ile işaretlemenize karşın hazırladığınız listede ARAF14A10 için Cyme, 10, 0,06 değerlerini koymuşsunuz. Yinelenen değerlerde ilkini değil de sonuncusunu almışsınız listeye! Bu isteğinizle ilgili bir ayrıntı değildir umarım. Özel bir nedeni yok da yanlış yazıldıysa istediğiniz değer yinelenenler arasında ilk değer ise dediğim şekilde kolayca yapabilirsiniz listenizi.
 
sn hadromer
mükerrlerin ilkine ait satırı alıyor.
Kod:
Sub a()
say = Range("b65536").End(3).Row
For i = 2 To say
If Range("b" & i) <> Range("b" & i - 1) Then
say1 = Range("g65536").End(3).Row
Range("A" & i & ":D" & i).Copy Range("G" & say1 + 1)
End If
Next
End Sub

Sn. Alicimri
İlgilendiğiniz için çok teşekkür ederim. Sizlere minnettarım.
Sanırım istediğim formül bu. Lakin,emin olmak için tekrar sormak istiyorum.B sütunundaki tekrar eden değerlerden bir tanesini solundaki A sütunu ve sağındaki C,D sütunu ile birlikte alıyor değil mi bu kod ?
 
Yapmak istediğinizi Veri sekmesinde "Yinelenenleri Kaldır" aracı ile kolayca yapmak mümkün. Tüm tabloyu seçtikten sonra "Veri" - "Yinelenenleri Kaldır" yaptıktan sonra code ve percent'in onay kutucuklarını tıklayarak kaldırınız. Tamam dediğinizde kaldıracaktır.

Ancak, örneğinizde ARAF14A10 için Deel, 50, 0,06 olan satırı çizgi ile işaretlemenize karşın hazırladığınız listede ARAF14A10 için Cyme, 10, 0,06 değerlerini koymuşsunuz. Yinelenen değerlerde ilkini değil de sonuncusunu almışsınız listeye! Bu isteğinizle ilgili bir ayrıntı değildir umarım. Özel bir nedeni yok da yanlış yazıldıysa istediğiniz değer yinelenenler arasında ilk değer ise dediğim şekilde kolayca yapabilirsiniz listenizi.

Sayın aerten,
vakit ayırdığınız için çok teşekkür ederim. Çalışmamın başlarında bahsettiğiniz yöntemi kullanarak yapmaya çalışmıştım. Fakat Ben B sütunundaki yinelenen değerlerden birer adet ayıklayıp yeni bir liste yapma arzusundaydım. Tabii ki , B sütunundaki yinelenen değerlerden birer adet ayıklayınca A ve C,D sütunundaki verilerinde karışmaması gerekiyordu. Yani B sütunundan hangi veriyi aldıysam sağ ve sol hizasındaki verilerinde ayıkladığımız değere ait veriler olması gerekiyordu. Bu konuda kafam karıştığı için sizlerden yardım istedim.

Son olarak,
Bahsettiğiniz deel ve cyme değerleri için örnek teşkil etmesi amacıyla hazırlamıştım. Biraz önce danışmanımla yaptığım istişare doğrultusunda, A sütunundaki değerlerin hangisini aldığımızın bi önemi olmadığını öğrendim. yani B, C ve D sütunundaki değerlerin sıralı olması yetiyor bana.
 
Son düzenleme:
sn hadromer
Anladığım kadarı ile Mükerrer kayıtlar alt alta B sütunundaki hücreleri test ediyor, bulduğu farklı satırın A, C, D sütunlarını G sütunundan başlayarak yapıştırıyor.
UYARI: Eğer Mükerrer kayıtlar alt alta değilse yanlış işlem yapar. Eğer Mükerrer kayıtlar alt alta değilse Ya önce Sıralama yapılarak Alt alta getirilip işlem yapılabilir yada başka türlü çözümleme yapılabilir.
 
sn hadromer
Anladığım kadarı ile Mükerrer kayıtlar alt alta B sütunundaki hücreleri test ediyor, bulduğu farklı satırın A, C, D sütunlarını G sütunundan başlayarak yapıştırıyor.
UYARI: Eğer Mükerrer kayıtlar alt alta değilse yanlış işlem yapar. Eğer Mükerrer kayıtlar alt alta değilse Ya önce Sıralama yapılarak Alt alta getirilip işlem yapılabilir yada başka türlü çözümleme yapılabilir.

Sn.Alicimri
Şuan B sütununu dediğiniz gibi sıraladım. Örnek sütun şöyle oluştu ;
ARAF14A1
ARAF14A1
ARAF14A1
ARAF14A1
ARAF14A2
ARAF14A2 şeklinde sıralı şekilde ilerliyor. Bu aşamadan sonra bu kodu uygulasam uygun mudur ? Formülü ise alt+f11 den vba panelini acıp soldan formülü uygulamak istediğim sayfaya çift tıklayıp acılan komut penceresine verdiğiniz formülü ekledim. ctrl+s yapıp kaydettim. Ardından " run " komutu ile kodu çalıştırdım. sanırım istediğim sonucu aldım. Uygulama konusunda bir hata yapmış mıyım sizce ?
.
 
Son düzenleme:
evet, doğru kodu bu halde uygularsanız sorun çıkmaz.
 
Değerli arkadaşlar,

Bunu makro yerine formülle yapabilir miyiz?
 
Son düzenleme:
Merhabalar aynı sütunda yer alan verilerin bazıları birbiriyle aynısı. Başka bir sütuna sadece benzersiz değerleri nasıl yazdırabilirim?(Başka bir hücreye kopyalayıp excelde yinelenleri kadlır diyerek bunu yapabiliyorum ancak bunu formülle yapmanın yolu var mı?)

Eğer mümkünse makro yerine formülle olursa daha güzel olacak benim için. İyi Eğlenceler.
 
A sütunundaki 50 hücre için C2 hücresine uygulayıp deneyiniz.

DİZİ formüldür.

C++:
=EĞERHATA(İNDİS($A$1:$A$50;KAÇINCI(0;EĞERSAY($C$1:C1;$A$1:$A$50&"");0);1);"")


Eğer formülü başka bir sütuna uygulayacaksanız $C$1:C1 adresini değiştirmelisiniz.
 
A sütunundaki 50 hücre için C2 hücresine uygulayıp deneyiniz.

DİZİ formüldür.

C++:
=EĞERHATA(İNDİS($A$1:$A$50;KAÇINCI(0;EĞERSAY($C$1:C1;$A$1:$A$50&"");0);1);"")


Eğer formülü başka bir sütuna uygulayacaksanız $C$1:C1 adresini değiştirmelisiniz.
Yardımlarınız için teşekkür ederim. kendi dosyama uyguladım gayet iyi çalıştı.
 
Geri
Üst