Listedeki Farkli Girdileri Ayrica Listelemek

Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
Kod:
A      B

06    evet
10    hayir
23    evet
34    evet
69    hayir
81    hayir
99    evet
yukaridaki gibi bir tablom var. Ben istiyorum ki C1'e evet ya da hayir yazdigimda D1'den asagiya kadar eger C1'de evet seciliyse:
Kod:
06
23
34
99
eger C1'de hayir seciliyse:
Kod:
10
69
81
ciksin. (ve tabii ki bu liste dinamik olsun.)

Offset, Index, Match, Small, Max, Min bircok formul denedim, isin icinden cikamadim, internette ve forumda da bunla ilgili sayisiz arama yaptim ama bulamadim. Eger daha once acilmis bir konu varsa o konuyu, daha once konu acilmamissa da cozumu paylasabilir misiniz.
 

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
Formülle de yapılan çözümler var ama beni aşıyor. Onun için makroyla isterseniz aşağıdaki çözümü önerebilirim:
Aşağıdaki kodları ilgili sayfanın kod bölümüne yapıştırıp deneyiniz. C1 hücresi değiştiğinde istediğiniz listelemeyi yapacaktır:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C1]) Is Nothing Then Exit Sub
sonA = WorksheetFunction.Max(Cells(Rows.Count, "A").End(3).Row, 1)
sonB = WorksheetFunction.Max(Cells(Rows.Count, "B").End(3).Row, 1)
sonC = WorksheetFunction.Max(Cells(Rows.Count, "C").End(3).Row, 2)
Range("C2:C" & sonC).ClearContents
If Target <> "" Then
    For i = 1 To sonB
        If Cells(i, "B") = Target Then
            yeni = Cells(Rows.Count, "C").End(3).Row + 1
            Cells(yeni, "C") = Cells(i, "A")
        End If
    Next
End If
End Sub
 
Katılım
23 Eylül 2013
Mesajlar
1,348
Excel Vers. ve Dili
Excel 2007 İngilizce -
Excel 2010 Türkçe -
Excel 2013 Türkçe -
Merhaba,
Formül ile alternatif olsun.
Kod:
=İNDİS(A$1:A$6;KÜÇÜK(EĞER(B$1:B$6=C$1;SATIR(A$1:A$6);"");SATIR(A1)))
[COLOR="Blue"]Formül dizi formülüdür.CTRL+SHIFT+ENTER ile tamamlayınız.[/COLOR]
Saygılar,
Şeşen
 
Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
YUSUF44 ve muygun vakit ayirdiginiz icin tesekkur ederim ancak bu cozumumuzde makro kullanmadan FONKSIYONlar ile cozume gitmem gerekiyor. Sorumda ozellikle belirtmedigim icin kusuruma bakmayin.


bzace, sizin formulunuzu uyguladigimda ilk satir duzgun calisiyor D1'de 06'yi veriyor. Ardindan D2 hucresinde #Value (Deger) hatasi veriyor.
D3 hucresinde #Num (No) hatasi veriyor. Sebebi ne olabilir?


Formulunuzu ingilizce Excel'e uyarladigimda asagidaki hali aldi ve D1'e bu kodla basladim, CTRL+SHIFT+ENTER ile tamamlamama da izin vermedi, acaba yanlislik nerede?
Kod:
=INDEX(A$1:A$6,SMALL(IF(B$1:B$6=$C$1,ROW(A$1:A$6),""),ROW(A1)))
 
Son düzenleme:

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,635
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Tag'daki dizi formülünü kullanabilirsiniz.

Kod:
=EĞERHATA(KÜÇÜK(EĞER($B$1:$B$7=$C$1;SATIR($A$1:$A$7));SATIR(A1));"")
Formül dizi formülüdür.CTRL+SHIFT+ENTER ile tamamlayınız.
 
Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
Ayrica benim ustunde epey bir calistigim baska bir kodu paylasayim. Microsoft'un forumunda paylasilmis bir kodu gelistirmistim. Bu formulde kod asagilara gidiyor ama istedigim sonucu vermiyor, Evet, Hayir hepsini listeliyor. Belki birilerine ilham verebilir diye paylasiyorum:

Kod:
=OFFSET($A1,SMALL(IF($B$1:$B$6=$C$1,ROW($B$1:$B$6)-MIN(ROW($B$1:$B$6))+1),ROWS(1:1))-1,0)
(D1'e yazdigim fonksiyonun ilk satiri)
 
Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
Kuvari sizin formulunuzu denedigimde D1'e 1 sonucu geldi ve asagi satirlar bos sonuc verdi.

Ben mi bir yerde yanlis yapiyorum? Siz denediniz mi bu formulu acaba?

Kod:
=IFERROR(SMALL(IF($B$1:$B$7=$C$1,ROW($A$1:$A$7)),ROW(A1)),"")
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,635
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Kuvari sizin formulunuzu denedigimde D1'e 1 sonucu geldi ve asagi satirlar bos sonuc verdi.

Ben mi bir yerde yanlis yapiyorum? Siz denediniz mi bu formulu acaba?

Kod:
=IFERROR(SMALL(IF($B$1:$B$7=$C$1,ROW($A$1:$A$7)),ROW(A1)),"")
Dizi formülü olarak çalışması için CTRL+SHIFT+ENTER ile kapatmanız gerekir.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,635
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Dizi formülü kullanmak istemiyorsanız, aşağıdaki formülü kullanabilirsiniz.

Kod:
=EĞERHATA(TOPLA.ÇARPIM(KÜÇÜK(--($B$1:$B$7=$C$1)*SATIR($A$1:$A$7);EĞERSAY($B$1:$B$7;"<>"&$C$1)+SATIR(A1)));"")
 
Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
Kuvari cok tesekkur ediyorum. Dizi formullerinin ctrl+shift+enter ile kapanmasi gerektigi detayini atliyormusum, dunden beri buldugum hic bir formulun calismamasinin sebebi de buymus anlasilan. (Ben formulu yazdiktan sonar ctrl+shift+enter) uygulamaya calisiyordum.

Bu durumda bzace'nin de sizin de formulleriniz harika bir sekilde calisti. (Yalniz sizinkilerde indis numaralari sonuclari ortaya cikiyor, onlarin basina indis formulunu koyarak calistirabildim.)

Son olarak benim paylastigim offset'li formulde sizce nerede eksiklik var? O formulu uyguladigimda listeyi oldugu gibi kopyaliyor, Evet ve Hayir'larin ayrimini yapmiyor.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,635
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Tagdaki formülü kullanabilirsiniz.

Kaydır formülünde başvuru kısmını sabitlemeniz gerekiyor. Ayrıca eğer formülünün şart kısmında c1 hücresininde sabitlenmesi gerekli. Küçük formülünde sıra için kullanılan satırsay işleminin sıralı gitmesi içinde ilk satırın sabitlenmesi gerekir yada onun yerine satır(a1) kullanabilirsiniz.

Kod:
=KAYDIR($A$1;KÜÇÜK(EĞER($B$1:$B$7=$C$1;SATIR($B$1:$B$7)-MİN(SATIR($B$1:$B$7))+1);SATIRSAY($1:1))-1;0)
 
Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
Harikasin kuvari cok tesekkur ediyorum. Simdi takir takir calisiyor.

Son olarak fonksiyonlarda cok zayif oldugumu farkettim, ne yapmami onerirsiniz?
 
Katılım
7 Aralık 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010 Home and Business / Ingilizce
Altın Üyelik Bitiş Tarihi
28/10/2021
Eyvallah :)

Selamlar Sevgiler
 
Üst