Aranan bir verinin ait olduğu satır ve sütundaki belirli bir hücredeki veri....?

Katılım
18 Temmuz 2008
Mesajlar
18
Excel Vers. ve Dili
2003
Selam Arkadaşlar;

Foruma yeni üye oldum. Bu forumun mimarlarına sonsuz teşekkürler. Excell ile amatör programlar yapıyorum ve foruma üye olduğum ilk günde bile bir çok yeni bilgi edindim. Çözemediğim bir sorunum var, yardımcı olabilirseniz çok sevinirim.

Sözgelimi adı "Sayfa1" olan bir çalışma sayfamda bir tablom var. tablonun satırlarında saat bilgileri, sütunlarında ise tarih bilgileri mevcut. Tablonun içindeki hücrelerde "1A", "2B" veya "13A" gibi kodlar var. Bu kodların her biri bir öğrenciyi temsil ediyor. Bu tablo bir öğretmenin hangi gün ve saatlerde hangi öğrencilere ders verdiğini özetliyor. Soruma geçmeden önce tabloyu biraz daha tasvir edeyim;

A2 hücresinden A10 hücresine kadar alt alta saatler yazılı, B1 hücresinden B30 hücresine kadar da yanyana bir aylık günler yazılı. tablonun içindeki her hücrede belirli bir kod ile öğrencileri yazdım.

Amacım şu;
"sayfa2" adlı diğer bir çalışma sayfasında oluşturduğum başka bir tabloda sözgelimi "13B" kodlu öğrenciye ait bir döküm çıkarmak istiyorum. "13B" kodunu "sayfa1"deki tabloda arattırıp bu kodun bulunduğu satırdaki saat ve sütundaki tarih bilgisini "sayfa2"de bulunan yeni tablodaki yanyana hücrelere yazdırmak istiyorum.

Bu sayede "13B" kodlu öğrencinin bir ay boyunca hangi tarih ve hangi saatlerde ders aldığını gösteren bir tablo elde etmiş olacağım.

formüller ile çözüm bulamadım. Muhtemelen VBA kodlama ile bir çözüm gerekiyor.

Yardımcı olabilecek arkadaşım varsa çalışma kitabımı gönderebilirim.

Şimdiden sonsuz teşekkürler...
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Öncelikle aramıza hoşgeldiniz.

Örnek bir tablo eklermisiniz..
 
Katılım
18 Temmuz 2008
Mesajlar
18
Excel Vers. ve Dili
2003
Örneğim ekte

Eklediğim çalışma kitabındaki sayfa2'deki B1 hücresine yazdığım kodu sayfa1'deki tabloda aratıp ilgili tarih ve saat bilgisinin sayfa2'deki tabloya eklenmesini istiyorum...

Merhaba,

Öncelikle aramıza hoşgeldiniz.

Örnek bir tablo eklermisiniz..
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Aşağıdaki gibi bir kod kullanabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim bul As Range
    Dim z As Integer
    
    On Error GoTo hatayakala
    
    z = 3
    
    Application.EnableEvents = False
    
    Range("A" & z + 1 & ":B1000").ClearContents
    
    If Target.Address = Range("B1").Address Then
        
        With Sheets("Sayfa1")
            Set bul = .Cells.Find(Range("B1"), Lookat:=xlWhole)
            
            If Not bul Is Nothing Then
                adr = bul.Address
                z = 3
                
                Do
                    z = z + 1
                    
                    Range("A" & z) = .Cells(bul.Row, 1)
                    Range("A" & z).NumberFormat = "hh:mm;@"
                    
                    Range("B" & z) = .Cells(1, bul.Column)
                    Range("B" & z).NumberFormat = "dd/mm/yy;@"
                    
                    Set bul = .Cells.FindNext(bul)
                Loop While Not bul Is Nothing And adr <> bul.Address
            
            Else
                MsgBox "Öğrenci bulunamadı", vbCritical, "UYARI"
            End If
            
        End With
    
    End If
hatayakala:
    
    Application.EnableEvents = True
    
    Set bul = Nothing
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
KTF hazırladım.
Dosyanız ekte.:cool:
Kod:
Function saati(aralik As Range, deg As Range)
Dim k As Range
Set k = aralik.Find(deg, , xlValues, xlWhole)
If k Is Nothing Then
    saati = "BULUNAMADI"
    Else
    saati = Sheets("Sayfa1").Cells(k.Row, "A").Value
End If
Set k = Nothing
End Function
Function tarihi(aralik As Range, deg As Range)
Dim k As Range
Set k = aralik.Find(deg, , xlValues, xlWhole)
If k Is Nothing Then
    tarihi = "BULUNAMADI"
    Else
    tarihi = Sheets("Sayfa1").Cells(1, k.Column).Value
End If
Set k = Nothing
End Function
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
formüller ile çözüm bulamadım. Muhtemelen VBA kodlama ile bir çözüm gerekiyor.
.
Şart değil fonksiyonlarlada olur.


Sayfa2'deki A ve B sütunundaki formüller dizi formülü olup direk enter tuşuna basılmadan CTRL+SHIFT+ENTER tuşlarına birlikte basarak girilmelidir.

Excel formül başına ve sonuna { } ayıraçlarını otomatik olarak ekleyecektir.


Örnek dosya ektedir.
 
Katılım
18 Temmuz 2008
Mesajlar
18
Excel Vers. ve Dili
2003
Arkada&#351;lar s&#252;persiniz;

Hepinize minnettar&#305;m. &#214;zellikle sorunu pratik bir &#351;ekilde fonksiyonlarla &#231;&#246;zen Ali arkada&#351;&#305;m&#305;z yazd&#305;&#287;&#305; fonksiyonu k&#305;saca a&#231;&#305;klarsa &#231;ok memnun olurum...

&#199;ok yararl&#305; bir sitenin &#252;yeleri olmaktan gurur duyuyor olmal&#305;s&#305;n&#305;z...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Benimkide fonksiyon.Kullanıcı Tanımlı Fonksiyon (KTF)
 
Katılım
18 Temmuz 2008
Mesajlar
18
Excel Vers. ve Dili
2003
Kendi çalışma kitabıma uyarlayabildim ama sorun var...

Benimkide fonksiyon.Kullanıcı Tanımlı Fonksiyon (KTF)
Çok teşekkürler Evren bey, gerçekten sizin öneriniz daha kullanışlı. formül çubuğuna faza kalabalık yazmaya gerek kalmıyor.

Ancak bir sorun var. Eğer tabloda 13B kodu birden fazla geçiyorsa ne yapacağız?

Ben aynı tabloda geçen bütün 13B kodlarına ait tarih ve saat bilgisini alt alta istiyorum....
 
Katılım
18 Temmuz 2008
Mesajlar
18
Excel Vers. ve Dili
2003
çok iyi ama bir sorun var

Şart değil fonksiyonlarlada olur.


Sayfa2'deki A ve B sütunundaki formüller dizi formülü olup direk enter tuşuna basılmadan CTRL+SHIFT+ENTER tuşlarına birlikte basarak girilmelidir.

Excel formül başına ve sonuna { } ayıraçlarını otomatik olarak ekleyecektir.


Örnek dosya ektedir.
Şu tarih ve saati tablodan bulma sorunuma ilgi gösterdiğiniz için çok teşekkürler... Çözümünüz çok işime yaradı.

Ama yeni fark edip çözüm bulamadığım bir sorun var;

Eğer aradığım kod tabloda bir tane ise hiç bir sorun yok ama birden fazla ise saatleri hiç aksatmadan doğru olarak alırken tarihler hatalı geliyor.

Kendim sorunu çözemedim bir türlü. Yardımcı olabilir misiniz?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Çok teşekkürler Evren bey, gerçekten sizin öneriniz daha kullanışlı. formül çubuğuna faza kalabalık yazmaya gerek kalmıyor.

Ancak bir sorun var. Eğer tabloda 13B kodu birden fazla geçiyorsa ne yapacağız?

Ben aynı tabloda geçen bütün 13B kodlarına ait tarih ve saat bilgisini alt alta istiyorum....
O zaman makro yazalım.Sub prosedür yazalım.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Şu tarih ve saati tablodan bulma sorunuma ilgi gösterdiğiniz için çok teşekkürler... Çözümünüz çok işime yaradı.

Ama yeni fark edip çözüm bulamadığım bir sorun var;

Eğer aradığım kod tabloda bir tane ise hiç bir sorun yok ama birden fazla ise saatleri hiç aksatmadan doğru olarak alırken tarihler hatalı geliyor.

Kendim sorunu çözemedim bir türlü. Yardımcı olabilir misiniz?


Farklı bir çözüm ektedir. Saatleri ve tarihlerin tümünü listelemektedir.

C16 hücresine kriterinizi yazınız. Sarı renkli alanda tümü listelenecektir.
 
Üst