koşula bağlı olarak değer bulmak

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Arkadaşlar hepinize kolay gelsin aşağıda yazmış olduğum sorunu çözemedim yardımcı olursanız sevinirim

G1 hücresine 2 yazdığımda A sütununda ki 2' yi bulup (yani A3 hücresi) 2'nin dahil olduğu satırdaki dolu hücreyi seçip bu 8 sayısı ( Yani D2 hücresi) bu hücrenin sütununda ki İsmail değerini vermesi gerekiyor. Formül H1 hücresinde olacak

Değerler değişkendir.
 

Ekli dosyalar

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhaba

Bu kodları deneyin.
Kod:
Sub Düğme1_Tıklat()
For Each hucre In Range("a2:a10")
 If hucre = Cells(1, "G") Then
    For Each hucre1 In Range("B" & hucre.Row & ":F" & hucre.Row)
    'For Each hucre1 In Range(Cells(hucre.Row, "b"), Cells(hucre.Row, "F"))
      If hucre1 <> "" Then Cells(1, "H") = Cells(1, hucre1.Column)
    Next hucre1
 End If
Next hucre
End Sub
 

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Merhaba

Bu kodları deneyin.
Kod:
Sub Düğme1_Tıklat()
For Each hucre In Range("a2:a10")
 If hucre = Cells(1, "G") Then
    For Each hucre1 In Range("B" & hucre.Row & ":F" & hucre.Row)
    'For Each hucre1 In Range(Cells(hucre.Row, "b"), Cells(hucre.Row, "F"))
      If hucre1 <> "" Then Cells(1, "H") = Cells(1, hucre1.Column)
    Next hucre1
 End If
Next hucre
End Sub
hocam çok teşekkür ederim ama ben makrodan anlamıyorum
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Makroya bir ucundan başlasanız iyi olur. ben de nerdeyse hiç bilmiyordum bu site sayesinde kendi ihtiyacımı görüyorum hem de çoğu zaman burda arkadaşlara yardımcı olmaya çalışıyorum.

Arkadaşın makrosu için Alt+F11 yapıp çıkan yerde Insert/Module yapın ve verdiği kodları çıkan sayfaya yapıştırın. Daha sonra Makrolardan bu makroyu çalıştırın. Konuyla ilgili ayrıntılı bilgi için makro ekleme ve çalıştırmayla ilgili araştırma yapabilirsiniz.

Ben de alternatif bir kod hazırladım. Benimkisi biraz daha basit. Sayfa1 sekmesine sağ tıklayıp Kod görüntüle deyin ve çıkan sayfaya bu kodları yapıştırın. Daha sonra G1 hücresini her değiştirdiğinizde makro otomatik çalışacak ve H1 hücresine istediğinzi sonucu yazdıracaktır.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
    If Cells(i, 1) = Target Then
        For j = 1 To Cells(i, 1).End(xlToRight).Column
            If Cells(i, j) <> "" Then
                [H1] = Cells(1, j)
            End If
        Next
    End If
Next
End Sub
 
Son düzenleme:

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Makroya bir ucundan başlasanız iyi olur. ben de nerdeyse hiç bilmiyordum bu site sayesinde kendi ihtiyacımı görüyorum hem de çoğu zaman burda arkadaşlara yardımcı olmaya çalışıyorum.

Arkadaşın makrosu için Alt+F11 yapıp çıkan yerde Insert/Module yapın ve verdiği kodları çıkan sayfaya yapıştırın. Daha sonra Makrolardan bu makroyu çalıştırın. Konuyla ilgili ayrıntılı bilgi için makro ekleme ve çalıştırmayla ilgili araştırma yapabilirsiniz.

Ben de alternatif bir kod hazırladım. Benimkisi biraz daha basit. Sayfa1 sekmesine sağ tıklayıp Kod görüntüle deyin ve çıkan sayfaya bu kodları yapıştırın. Daha sonra G2 hücresini her değiştirdiğinizde makro otomatik çalışacak ve H1 hücresine istediğinzi sonucu yazdıracaktır.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
    If Cells(i, 1) = Target Then
        For j = 1 To Cells(i, 1).End(xlToRight).Column
            If Cells(i, j) <> "" Then
                [H1] = Cells(1, j)
            End If
        Next
    End If
Next
End Sub
hocam her değer girdiğimde makroyu çalıştır mı diyeceğim
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
G1 hücresini her değiştirdiğinizde H1 hücresinde aradığınız sonucu verecektir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
G1'e yazdığınız A sütununda yoksa H1'in boş kalması için kodları değiştirdim:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
    If Cells(i, 1) = Target Then
        For j = 1 To Cells(i, 1).End(xlToRight).Column
            If Cells(i, j) <> "" Then
                [H1] = Cells(1, j)
            End If
        Next
    Else
        [H1] = ""
    End If
Next
End Sub
 

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
G1'e yazdığınız A sütununda yoksa H1'in boş kalması için kodları değiştirdim:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
    If Cells(i, 1) = Target Then
        For j = 1 To Cells(i, 1).End(xlToRight).Column
            If Cells(i, j) <> "" Then
                [H1] = Cells(1, j)
            End If
        Next
    Else
        [H1] = ""
    End If
Next
End Sub
hocam yardımlarınız için teşekkürler fakat ben bu makro işini beceremeyeceğim Hüseyin hocanın videolarını da izledim olmuyor bana diğer türlü yardım ederseniz sevinirim
 

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhaba
dosyayı inceleyin.

Sayfa1 de hücreye rakam girince
Sayfa2 de butona basınca çalışır.
 

Ekli dosyalar

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Merhaba
dosyayı inceleyin.

Sayfa1 de hücreye rakam girince
Sayfa2 de butona basınca çalışır.
hocam gerçekten çok teşekkür ediyorum elinize sağlık benim için zaman harcadınız. fakat bunu formül yoluyla çözemezmiyiz; şundan dolayı formül yoluyla istiyorum A sütünunu ve diğer başka sütunları diğer çalışma kitaplarından alabilirim ve her defasında sizleri rahatsız etmek istemiyorum makro benim için şu aşamada çok zor
 

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
hocam gerçekten çok teşekkür ediyorum elinize sağlık benim için zaman harcadınız. fakat bunu formül yoluyla çözemezmiyiz; şundan dolayı formül yoluyla istiyorum A sütünunu ve diğer başka sütunları diğer çalışma kitaplarından alabilirim ve her defasında sizleri rahatsız etmek istemiyorum makro benim için şu aşamada çok zor
arkadaş yukarıda ki sorunumu makrosuz çözebilecek arkadaş varmı.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Makro sizin için daha uygun diye düşünüyorum. Çünkü makro son dolu hücreye göre ayarlanmıştır. Siz başka yerden kopyaladığınız verileri dosyanıza yapıştırdığınızda da makro düzgünce çalışmaya devam eder. Ancak makro olursa 50 satıra göre ayarlandığında 51. satırda çalışmaz. Eğer A sütunu G1 ve H1 hücreleriniz sabitse (yani başka yerden kopyaladığınızda bile hep aynı sütunda arama yapılıp hep aynı satırdaki veri hep aynı hücreye kaydedilecekse makroyu kullanmanızı öneririm.
 

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Makro sizin için daha uygun diye düşünüyorum. Çünkü makro son dolu hücreye göre ayarlanmıştır. Siz başka yerden kopyaladığınız verileri dosyanıza yapıştırdığınızda da makro düzgünce çalışmaya devam eder. Ancak makro olursa 50 satıra göre ayarlandığında 51. satırda çalışmaz. Eğer A sütunu G1 ve H1 hücreleriniz sabitse (yani başka yerden kopyaladığınızda bile hep aynı sütunda arama yapılıp hep aynı satırdaki veri hep aynı hücreye kaydedilecekse makroyu kullanmanızı öneririm.
hocam haklısınız da makroda ki terimlerin hepsi yabancı inanın ki verdiğiniz makroları kopyalamayı bile başaramıyorum kaldı ki onun içinde ufak değişiklikler yapmam icap edecek nasıl çözeceğim o yüzden formül istiyorum.

Mesala A sütununu başka bir çalışma kitabından alacağım ve 2732 satır yine g1, h1 hücreleri ise g1:g2 ...g6 ve H1...H6 ya kadar olacak Yani verilecek formülleri bunların hepsine uygulayacağım
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
illa formül istiyorsanız aşağıdakini kullanabilirsiniz:

Kod:
=İNDİS($B$1:$F$1;KAÇINCI(ARA(2;1/(DOLAYLI(ADRES(KAÇINCI(G1;$A$2:$A$10;0)+1;2;1;1;)&":"&ADRES(KAÇINCI(G1;$A$2:$A$10;0)+1;6;1;1;))>0);DOLAYLI(ADRES(KAÇINCI(G1;$A$2:$A$10;0)+1;2;1;1;)&":"&ADRES(KAÇINCI(G1;$A$2:$A$10;0)+1;6;1;1;)));DOLAYLI(ADRES(KAÇINCI(G1;$A$2:$A$10;0)+1;2;1;1;)&":"&ADRES(KAÇINCI(G1;$A$2:$A$10;0)+1;6;1;1;));0))
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bu arada ilk sayfada verdiğim ikinci kodlar istediğiniz gibi olmamış. İlk verdiğim kodlar düzgün çalışıyor. Aşağıdaki kodlar daha iyi oldu:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
[H1] = ""
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
    If Cells(i, 1) = Target Then
        For j = 1 To Cells(i, 1).End(xlToRight).Column
            If Cells(i, j) <> "" Then
                [H1] = Cells(1, j)
            End If
        Next
    End If
Next
End Sub
 

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Bu arada ilk sayfada verdiğim ikinci kodlar istediğiniz gibi olmamış. İlk verdiğim kodlar düzgün çalışıyor. Aşağıdaki kodlar daha iyi oldu:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
[H1] = ""
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To son
    If Cells(i, 1) = Target Then
        For j = 1 To Cells(i, 1).End(xlToRight).Column
            If Cells(i, j) <> "" Then
                [H1] = Cells(1, j)
            End If
        Next
    End If
Next
End Sub
hocam teşekkür ederim emeğinize sağlık son bir sorum olacak size vermiş olduğunuz formül birleştirilmiş hücrelerde çalışırmı
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yaptığım denemede birleştirilmiş hücrelerde sol üst köşedeki ilk hücreyi dikkate alıyor. Yani E5 ve F5 hücrelerini birleştirip hem makroyla hem de formülle F sütunundaki sonucu almak istiyorsanız yani F1'deki ismi bulmak istiyorsanız F1'i bulmuyor, E1'deki ismi veriyor. Benim bildiğim excel mantığı da bu şekilde işliyor zaten.
 

kozman

Altın Üye
Katılım
2 Şubat 2014
Mesajlar
80
Excel Vers. ve Dili
Windows 8, türkçe
Altın Üyelik Bitiş Tarihi
28-04-2029
Yaptığım denemede birleştirilmiş hücrelerde sol üst köşedeki ilk hücreyi dikkate alıyor. Yani E5 ve F5 hücrelerini birleştirip hem makroyla hem de formülle F sütunundaki sonucu almak istiyorsanız yani F1'deki ismi bulmak istiyorsanız F1'i bulmuyor, E1'deki ismi veriyor. Benim bildiğim excel mantığı da bu şekilde işliyor zaten.
anladığım kadarıyla birleştirilmiş hücrelerden vaz geçmem gerekiyor, başka bir sorunumu çözmek için oluşturduğum alttaki formülde bu yüzden çalışmıyor.
Peki hocam hem sizin bana verdiğiniz formül hemde benim aşağıda ki yapmaya çalıştığım formülün birleştirilmiş hücreler için başka çözümleri olabilirmi.

=Max(EĞER(($A$18:$A$2729=M39)*($AF$17:$AL$2728<>0);$AF$17:$AL$2728))
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sorunusu örnek dosyayı sorunuza uydurarak sorarsanız daha iyi olur. Böyle ne yapmak istediğinizi anlamadım maalesef.
 
Üst