• DİKKAT

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

Çö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:
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
 
cevap için teşekkür ederim fakat aranan veri 1 adet olunca sonuç vermiyor
 
Açtığınız konu başlığına dikkatinizi çekmek isterim.. Cevap talebinize göre verildi..
 
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:
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


 
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.
 
Korhan Bey Merhaba

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

Ekli dosyalar

  • TEST.png
    TEST.png
    56.8 KB · Görüntüleme: 7
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
 
h4 HÜCRESİNE
çapraz ara fonksiyonu ile arama yaparsan
=ÇAPRAZARA(F4&G4;A:A&B:B;C:C)
 
Cevaplarınız için çok teşekkür ederim.
 
Geri
Üst