Çözüldü İki Sütunda İki Kritere Göre Arama

Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE



A​

B​

C​

D​

E​

F​

G​

H​

ADI

SOYADI

MİKTAR

  

ADI

SOYADI

MİTAR

MURAT

SAN

500

  

MURAT

SAN

 

MURAT

DORUK

100

  

ALİ

YOK

 

MURAT

VAR

145

  

MURAT

VAR

 

HASAN

PARLAK

654

     

ALİ

YOK

345

     

ALİ

VAR

567

     

Merhabalar;


A,B,C sütununda verilerim mevcut. F ve G sütununa girilen değerlere göre A ve B sütununda arayıp H sütununa C deki değerleri makro ile yazdırabilir miyiz.

Teşekkürler.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim My_Formula As String, Last_Row As Long
   
    Last_Row = Cells(Rows.Count, "A").End(3).Row
   
    My_Formula = "=INDEX(C$2:C$" & Rows.Count & ",MATCH(F2&G2,A$2:A$" & Rows.Count & "&B$2:B$" & Rows.Count & ",0))"
    My_Formula = Replace(My_Formula, Rows.Count, Last_Row)
   
    With Range("H2:H" & Cells(Rows.Count, "F").End(3).Row)
        .Cells(1).Resize(Rows.Count - 1).ClearContents
        .Cells(1).FormulaArray = My_Formula
        If Cells(Rows.Count, "F").End(3).Row > 2 Then
            .FillDown
            .Value = .Value
        Else
            .Value = .Value
        End If
    End With
End Sub
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
cevap için teşekkür ederim fakat aranan veri 1 adet olunca sonuç vermiyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Açtığınız konu başlığına dikkatinizi çekmek isterim.. Cevap talebinize göre verildi..
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Açtığım başlıkta ne var anlamadım kusura bakmayın da. İki sütunda iki kritere göre arama yapıyoruz. F,G sütununda bir veri varsa sonuç vermiyor. MURAT SAN 500 yazması gerekirken MURAT SAN MİKTAR sonucunu veriyor. 2 ve daha fazla veri olunca arama yapıyor bir veri olunca yapmıyor.
 
Son düzenleme:
Katılım
20 Şubat 2007
Mesajlar
525
Excel Vers. ve Dili
2007 Office, Tr
Bu ifadenizden ne anlamalıyız..
Korhan bey ben denedim, arkadaş şöyle demek istiyor:
Makro doğru çalışıyor. İşlem şu şekilde iken makro çalışınca ".FillDown" komutundan dolayı sonuç silinip FillDown komutu gereği üst hücre MİTAR olarak aşağıya yazılıyor.

ADI

SOYADI

MİTAR

MURAT

SAN

 
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben ifadeden aşağıdaki anlamı çıkarmıştım.. ki yanlış anlamışım. Yanlış anlaşılma için özür dilerim.

"F yada G sütunundan birisinde veri varsa..."

Tek satır için kodu revize ettim. Yeniden deneyiniz.
 

relaxim

Altın Üye
Katılım
30 Ağustos 2009
Mesajlar
490
Excel Vers. ve Dili
Ofis 2016 Tr 64 bit
Altın Üyelik Bitiş Tarihi
15.06.2027
Korhan Bey Merhaba

Veri azsa aşağıdaki şekilde sonuç verdi.
 

Ekli dosyalar

Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Alternatif olsun. KTF dir.Deneyin..

Kullanımı = Iki_Kriter_Duseyara($A$2:$C$9;3;E2;F2)


Kod:
Function Iki_Kriter_Duseyara(Arama_Islem_Alani_Belirle As Range, Sonucun_Gelecegi_Sutun_Rakami As Long, Birinci_Kriter, Ikinci_Kriter)

''EXCEL 2003 OR ABOVE

'' Özenle gerektiği kadar Türkçe'leştirilmiştir

Dim rCheck As Range, bFound As Boolean, lLoop As Long

    

    On Error Resume Next

    Set rCheck = Arama_Islem_Alani_Belirle.Columns(1).Cells(1, 1)

    With WorksheetFunction

        For lLoop = 1 To .CountIf(Arama_Islem_Alani_Belirle.Columns(1), Birinci_Kriter)

           Set rCheck = Arama_Islem_Alani_Belirle.Columns(1).Find(Birinci_Kriter, rCheck, xlValues, xlWhole, xlNext, xlRows, False)

           If UCase(rCheck(1, 2)) = UCase(Ikinci_Kriter) Then

                bFound = True

                Exit For

            End If

        Next lLoop

    End With



    If bFound = True Then

        Iki_Kriter_Duseyara = rCheck(1, Sonucun_Gelecegi_Sutun_Rakami)

    Else

     Iki_Kriter_Duseyara = "#N/A"

    End If

End Function
 

KuTuKa

Altın Üye
Katılım
10 Mart 2005
Mesajlar
730
Excel Vers. ve Dili
Microsoft Office LTSC Pr. Pl 2021 - 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
19-03-2029
h4 HÜCRESİNE
çapraz ara fonksiyonu ile arama yaparsan
=ÇAPRAZARA(F4&G4;A:A&B:B;C:C)
 
Katılım
9 Ocak 2009
Mesajlar
557
Excel Vers. ve Dili
2002 TÜRKÇE
2007 TÜRKÇE
2010 TÜRKÇE
2019 TÜRKÇE
Cevaplarınız için çok teşekkür ederim.
 
Üst