• DİKKAT

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

Yıl bazında tarihi tekrarsız listeleme

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,673
Excel Vers. ve Dili
excel2016
Arkadaşlar merhaba; Sizlerden isteğim aşağıdaki gibi yardımlarınız için şimdiden teşekkürler. Not: hem makro ile hem formül ile olursa çok daha güzel olur.
mevcut liste olması gereken
01.01.2018 2018
05.01.2018 2019
06.04.2018 2020
01.02.2019
04.06.2019
06.07.2020
09.11.2020
 
gg.aa.yyyy formatındaki veriler A1 ve altındaki hücrelerdeyse;

A1 hücresine aşağıdakini yazın ve formülü aşağıya doğru sürükleyin....

Kod:
=YEAR(A1)


Sonuçta, "B" sütunundaki hücrelerde aşağıdaki gibi sonuçlar çıkacak.


Kod:
2018
2018
2018
2019
2019
2020

Şimdi, "B" sütunundaki bu hücreleri mouse ile seçin, "Data" sekmesinde "Remove Duplicates" menüsünü çalıştırın, uygun seçenekleri işaretleyerek sonuca ulaşın.

.
 
Merhaba,

Dizi formülü.

Kod:
=YIL(İNDİS($A$1:$A$7;KÜÇÜK(EĞERHATA(KAÇINCI(SATIR($A$1:$A$7);KAÇINCI(YIL($A$1:$A$7);YIL($A$1:$A$7);0);0);"");SATIR(A1))))
 
Makro,

Kod:
Sub deneme()
Range("b:b").ClearContents
Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "select distinct(year(f1)) from[sayfa1$]"
Set rs = con.Execute(sorgu)
Range("b1").CopyFromRecordset rs


End Sub
 
Erdem Beyin formüllü çözümüne alternatif olarak, ADO ile makrolu çözüm ektedir...

.
 

Ekli dosyalar

Erdem Beyin formüllü çözümüne alternatif olarak, ADO ile makrolu çözüm ektedir...

.
Haluk Bey, koddaki distinct ve cursortype'ın fonksiyonunu açıklar mısınız? Sonucu teke indiren kısım neresi?

Not: Aynı daha doğrusu benzer çözüm sayın Erdem_34 tarafından da paylaşılmış, sonradan fark ettim.
 
Dizi formülü olmayan alternatif,

Kod:
=YIL(İNDİS($A$1:$A$7;TOPLAMA(15;6;1/--(EĞERSAY(KAYDIR($A$1;;;SATIR($1:$7));">="&TARİH(YIL($A$1:$A$7);1;1))=1)*SATIR($1:$7);SATIR(A1))))
 
Teşekkürler Haluk Bey.
 
Alternatif olarak Scripting.Dictionary kullanılan bir dosya ektedir...

.
 

Ekli dosyalar

Nasıl olsa iş, güç yok..... alternatiflere devam.

System.Collections nesnesinin de kullanıldığı dosya ektedir....

.
 

Ekli dosyalar

Hocam System.Collections nesnesinin kullanıldığı kod hata verdi.
 
Alternatif dizi formülü,

Kod:
YIL(İNDİS($A$1:$A$12;KÜÇÜK(EĞERHATA(1/(SIKLIK(YIL($A$1:$A$12);YIL($A$1:$A$12))>0)*SATIR($A$1:$A$12);"");SATIR(A1))))
 
Geri
Üst