• DİKKAT

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

Excel 2007 DÜŞEYARA

Katılım
17 Nisan 2015
Mesajlar
6
Excel Vers. ve Dili
Excel 2007 TR
Arkadaşlar;

Altın üye olmadığım için dosyayı atamadım.

Sıkıntı şu. Resimde gördüğünüz gibi bir liste oluşturdum kitap ismi ve yazarları diye, yan tarafına da DÜŞEYARA formülü ile aradığım anahtar kelimesi ile kitapları listelemesini istedim.

Şimdi formülü uyguluyorum sıkıntı yok ama şöyle bir durum oluyor. Ben örneğin ahmet ümit yazdığımda sadece tek bir kitabını bana getiriyor. Halbuki listede 3 adet kitap görünüyor ben bu 3 kitabı da getirmesini istiyorum. Nasıl yapabiliriz?

Not: ÖZET TABLO VB ŞEKİLLERDE UYGULAMAYI YAPABİLİYORUM. İSTEDİĞİM ŞEY TAM YAZDIĞIM GİBİ. Yani bir arama kutucuğu gibi hücre olacak ben oraya anahtar kelimeyi girdiğimde alt alta kitaplar sıralanacak.

lJDSXh0.png
 
düşey ara değil de kaçıncı formülünü kullanabilirsiniz c sütununa isimlerin kaçıncı sırada olduğunu getirin dosya eklerseniz daha kolay olacak
 
Son düzenleme:
Merhaba,

Örnek dosya olmadığı için yanlışlık olabilir, deneyiniz. L1 yardımcı hücredir.

L1'e;

Kod:
=EĞERSAY(B2:B100;J2)

J3'e ;

Kod:
=EĞER(SATIRSAY($B$2:$B100)=$L$1;İNDİS($C$1:$B$100;KÜÇÜK(EĞER($B$2:$B$100=$J$3;SATIR($C$2:$C$100));SATIRSAY($B$2:$B2)));"")

yazıp aşağıya doğru çoğaltınız.Formüller 100 satır içindir.
 
Arkadaşlar;

Altın üye olmadığım için dosyayı atamadım.

Sıkıntı şu. Resimde gördüğünüz gibi bir liste oluşturdum kitap ismi ve yazarları diye, yan tarafına da DÜŞEYARA formülü ile aradığım anahtar kelimesi ile kitapları listelemesini istedim.

Şimdi formülü uyguluyorum sıkıntı yok ama şöyle bir durum oluyor. Ben örneğin ahmet ümit yazdığımda sadece tek bir kitabını bana getiriyor. Halbuki listede 3 adet kitap görünüyor ben bu 3 kitabı da getirmesini istiyorum. Nasıl yapabiliriz?

Not: ÖZET TABLO VB ŞEKİLLERDE UYGULAMAYI YAPABİLİYORUM. İSTEDİĞİM ŞEY TAM YAZDIĞIM GİBİ. Yani bir arama kutucuğu gibi hücre olacak ben oraya anahtar kelimeyi girdiğimde alt alta kitaplar sıralanacak.

lJDSXh0.png



örnek bir dosya ekledim umarım işinizi görür.
 

Ekli dosyalar

Dosyanız aşağıdaki linktedir.
Butona basınız listelesin.:cool:

DOSYA İNDİR

Kod:
Sub ara59()
Dim sonsat As Long, sat As Long, k As Range, adr As String
Sheets("kütüphane").Select
Range("J3:J" & Rows.Count).Value = Empty
sonsat = Cells(Rows.Count, "B").End(xlUp).Row
sat = 3
Set k = Range("B2:B" & sonsat).Find(Cells(2, "J").Value, , xlValues, xlWhole)
Application.ScreenUpdating = False
If Not k Is Nothing Then
    adr = k.Address
    Do
        Cells(sat, "J").Value = k.Offset(0, 1).Value
        sat = sat + 1
        Set k = Range("B2:B" & sonsat).FindNext(k)
    Loop While Not k Is Nothing And k.Address <> adr
End If
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub
 
Dosyanız aşağıdaki linktedir.
Butona basınız listelesin.:cool:

DOSYA İNDİR

Kod:
Sub ara59()
Dim sonsat As Long, sat As Long, k As Range, adr As String
Sheets("kütüphane").Select
Range("J3:J" & Rows.Count).Value = Empty
sonsat = Cells(Rows.Count, "B").End(xlUp).Row
sat = 3
Set k = Range("B2:B" & sonsat).Find(Cells(2, "J").Value, , xlValues, xlWhole)
Application.ScreenUpdating = False
If Not k Is Nothing Then
    adr = k.Address
    Do
        Cells(sat, "J").Value = k.Offset(0, 1).Value
        sat = sat + 1
        Set k = Range("B2:B" & sonsat).FindNext(k)
    Loop While Not k Is Nothing And k.Address <> adr
End If
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub


ÇOK acayip olmuş teşekkürler
 
Sn. Orion1,

Peki bu yazdığınız kodu nasıl kişiselleştirebilirim. Nereleriyle oynayabilrim.

Mesela dosya ekindeki sadece bir örnekti.
Listeki aşağıya döğru daha da büyüyecek belki de 1000 satır ama ben alta yeni satır girdiğimde arama yapmadığını gördüm. Ya da arama sonuçlarının listelendiği tablo 5 satırlık bunu 10 satır yapmak istersem nasıl olacak. Buna benzer kişiselleştirmeleri neleri değiştirerek yapabilirim. (yoksa hiç denmeyeyim mi çok mu karışık :D)
 
Sn. Orion1,

Peki bu yazdığınız kodu nasıl kişiselleştirebilirim. Nereleriyle oynayabilrim.

Mesela dosya ekindeki sadece bir örnekti.
Listeki aşağıya döğru daha da büyüyecek belki de 1000 satır ama ben alta yeni satır girdiğimde arama yapmadığını gördüm. Ya da arama sonuçlarının listelendiği tablo 5 satırlık bunu 10 satır yapmak istersem nasıl olacak. Buna benzer kişiselleştirmeleri neleri değiştirerek yapabilirim. (yoksa hiç denmeyeyim mi çok mu karışık :D)
B sütundaki en son hücreye kadar çalışır.Yani sonsatır dinamiktir.Farketmez.İstediğiniz satır kadar ekleyebilrisiniz.:cool:
 
Merhaba,

Dosya ekleyince doğru formül oluştu,

J3:J5 aralığındaki hücreleri birleştirme işleminden kurtarın ve J3 hücresine;

Kod:
=EĞER(SATIRSAY($B$2:$B2)<=$L$1;İNDİS($C$1:$C$100;KÜÇÜK(EĞER($B$2:$B$100=$J$2;SATIR($C$2:$C$100));SATIRSAY($B$2:$B2)));"")
yazınız,

Not ; Dizi formüldür Ctrl+Shift+Enter ile giriniz.

Kolay gelsin.
 
B sütundaki en son hücreye kadar çalışır.Yani sonsatır dinamiktir.Farketmez.İstediğiniz satır kadar ekleyebilrisiniz.:cool:

Peki son sorum sizi de bayağı meşkul ettik. Arama kutusu içine yazarın ismini b sütununa girildiği şekilde yazmamız gerekiyor aramanın gerçekleşmesi için. Bunun yerine "ahmet ümit" yazmak yerine "ahmet" ya da "sadece bir iki harfi giripte arama yaptırabiliri miyiz?
 
Peki son sorum sizi de bayağı meşkul ettik. Arama kutusu içine yazarın ismini b sütununa girildiği şekilde yazmamız gerekiyor aramanın gerçekleşmesi için. Bunun yerine "ahmet ümit" yazmak yerine "ahmet" ya da "sadece bir iki harfi giripte arama yaptırabiliri miyiz?
Dosya linki aşağıdadır.:cool:

DOSYAYI İNDİR

Kod:
Sub ara59()
Dim sonsat As Long, sat As Long, k As Range, adr As String
Sheets("kütüphane").Select
Range("J3:J" & Rows.Count).Value = Empty
sonsat = Cells(Rows.Count, "B").End(xlUp).Row
sat = 3
Set k = Range("B2:B" & sonsat).Find(Cells(2, "J").Value & "*", , xlValues, xlWhole)
Application.ScreenUpdating = False
If Not k Is Nothing Then
    adr = k.Address
    Do
        Cells(sat, "J").Value = k.Offset(0, 1).Value
        sat = sat + 1
        Set k = Range("B2:B" & sonsat).FindNext(k)
    Loop While Not k Is Nothing And k.Address <> adr
End If
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub
 
Geri
Üst