- Katılım
- 23 Ocak 2011
- Mesajlar
- 293
- Excel Vers. ve Dili
- 2007 excel
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
bir liste tekrarlanan verilerden 1'er tabesini alıp tabloya eklemek istiyorum.
=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.
Formülü diziye çevirdikten sonra yana doğru çoğaltınız.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.
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
ihsan bey bu yaptığınızı excel üzerinde yaparmısınız size zahmet
Teşekkürler Dizi Formülü ile yaptım.
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 ?
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
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.