Yıl bazında tarihi tekrarsız listeleme

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,616
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
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
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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.

.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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))))
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Erdem Beyin formüllü çözümüne alternatif olarak, ADO ile makrolu çözüm ektedir...

.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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))))
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Teşekkürler Haluk Bey.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatif olarak Scripting.Dictionary kullanılan bir dosya ektedir...

.
 

Ekli dosyalar

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,616
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Tüm Üstadlarıma teşekkür ederim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Nasıl olsa iş, güç yok..... alternatiflere devam.

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

.
 

Ekli dosyalar

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,616
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Hocam System.Collections nesnesinin kullanıldığı kod hata verdi.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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))))
 
Üst