• DİKKAT

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

tekrarlanan verilerden birer tane almak

Katılım
23 Ocak 2011
Mesajlar
293
Excel Vers. ve Dili
2007 excel
bir liste tekrarlanan verilerden 1'er tabesini alıp tabloya eklemek istiyorum.
 

Ekli dosyalar

Gelişmiş süz ile yapabilirsiniz.
 
bir liste tekrarlanan verilerden 1'er tabesini alıp tabloya eklemek istiyorum.

Merhaba
Formül ile isterseniz ( dizi formülüdür ve 1000 satır baz alınmıştır. )
E5 hücresine
Kod:
=EĞER(SÜTUNSAY($E$1:E1)>TOPLA(EĞER(SIKLIK(EĞER($A$1:$A$1000<>"";KAÇINCI(
"~"&$A$1:$A$1000;$A$1:$A$1000&"";0));SATIR($A$1:$A$1000)-SATIR($A$1)+1);1))
;"";İNDİS($A$1:$A$1000;KÜÇÜK(EĞER(SIKLIK(EĞER($A$1:$A$1000<>"";KAÇINCI(
"~"&$A$1:$A$1000;$A$1:$A$1000&"";0));SATIR($A$1:$A$1000)-SATIR($A$1)+1);SATIR(
$A$1:$A$1000)-SATIR($A$1)+1);SÜTUNSAY($E$1:E1))))
Dizi Formülü Formül Hücreye Girildikten Sonra Enter Tuşuna Basmadan Ctrl+Shift+Enter Tuş Kombinasyonu İle Aktif Olmaktadır. Formülün Başında Ve Sonunda { } Bu İşaretler Çıkar Elle Eklediğiniz Takdirde Formül Hata Verir.
1000 satır'ı değiştirmek için ctrl+h yapın aranan değere $1000 yeni değere $10000 yazın ve tümünü değiştir deyin.
$10000 olan yeri kendinize göre ayarlayınız.
Formülü diziye çevirdikten sonra yana doğru çoğaltınız.
Kod ile isterseniz
Kod:
Option Explicit
Sub tekli_sütun_61()
Dim ts, kaplan, trabzonspor, süre As Date
trabzonspor = MsgBox("Verileri Tek'e Düşürüyorum", vbYesNo, "Onay")
If trabzonspor = vbNo Then Exit Sub
Application.ScreenUpdating = False
süre = Time
kaplan = 5
For ts = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountIf(Range("A2:A" & ts), Cells(ts, "A")) = 1 Then
Cells(5, kaplan) = Cells(ts, "A")
kaplan = kaplan + 1
End If
Next
Application.ScreenUpdating = True
MsgBox Format(süre - Time, "hh:mm:ss") & vbLf _
& "Sürede İşlem Tamam", vbInformation, "Bitiş"
End Sub
Bu kodu boş bir module kopyalayın ve deneyin.
 
ihsan bey bu yaptığınızı excel üzerinde yaparmısınız size zahmet
 
Eğer ofis 2007 kullanıyorsanız:
VERI/YINELEnleri KALDIR a tıklayınız seçili sütünda her ismden yalnızca 1 er tane kalır .onları alın ve istediğiniz yer yapıştırınız..olmaz mı?
İhsan Tank ın yaptığı da gayet güzel çalışıyor..
 
Son düzenleme:
Sayın İhsan Tank, çok teşekkürler, yine harika ötesi bir kod bizlerle paylaşmışsınız, sağolun, var olun, elleriniz dert yüzü görmesin inşallah. Bu kod sonuç verileri soldan sağa kayıt ediyor. Bunun bir de örneğin E1 hücresinden aşağıya doğru şeklini nasıl yapabiliriz ?
 
Sayın İhsan Tank, çok teşekkürler, yine harika ötesi bir kod bizlerle paylaşmışsınız, sağolun, var olun, elleriniz dert yüzü görmesin inşallah. Bu kod sonuç verileri soldan sağa kayıt ediyor. Bunun bir de örneğin E1 hücresinden aşağıya doğru şeklini nasıl yapabiliriz ?

Merhaba
Kod:
Option Explicit
Sub tekli_sütun_61()
Dim ts, kaplan, trabzonspor, süre As Date
trabzonspor = MsgBox("Verileri Tek'e Düşürüyorum", vbYesNo, "Onay")
If trabzonspor = vbNo Then Exit Sub
Application.ScreenUpdating = False
süre = Time
kaplan = 1
For ts = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountIf(Range("A2:A" & ts), Cells(ts, "A")) = 1 Then
Cells(kaplan, "E") = Cells(ts, "A")
kaplan = kaplan + 1
End If
Next
Application.ScreenUpdating = True
MsgBox Format(süre - Time, "hh:mm:ss") & vbLf _
& "Sürede İşlem Tamam", vbInformation, "Bitiş"
End Sub
Şeklinde deneyin.
 
Sayın İhsan Tank çok çok teşekkürler, ayırdığınız zaman için Allah sizden razı olsun. Sağlıcakla kalın.
 
Geri
Üst