Farklı verileri çoklu koşula göre eşleştirme

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın Uzman arkadaşlar,

Ekteki çalışma kitabı "Parametre" ve "Database" isimli sayfalardan oluşurken, "Database" sayfasındaki veriler farklı bir kaynaktan alınırken, "Parammetre" sayfasındaki tablo verileri manuel oluşturulmaktadır. "
"Database" sayfasının "A2:A1250" ve "H2:H1250" aralığı ölçüt olarak kullanılarak, "Parametre" sayfasında koşula uyan isimler "D2:1250" aralığına yazdırılmasını sağlanmalıdır.
Konuya hakim arkadaşların benim için çok değerli olan yardımlarınızı rica ediyorum.

Saygılarımla,


Ekli dosyalar
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Datebase sayfanızın yedeğini aldıktan sonra,
aşağıdaki kodu bir Module içine yazıp çalıştırınız.
C++:
Sub İsimler()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim i As Integer, x As Integer
Dim bul As Range, tarih As Range

Set Sh1 = Sheets("Parametre")
Set Sh2 = Sheets("Database")

For i = 2 To Sh2.Range("A3").End(xlDown).Row
    Set bul = Sh1.Range("C:H").Find(Sh2.Range("H" & i), , , xlWhole)
    If Not bul Is Nothing Then
        x = bul.Row Mod 8
        If x > 2 Then
            x = bul.Row - x + 3
        Else
            x = bul.Row - x - 5
        End If
        Set tarih = Sh1.Range("2:2").Find(Format(Sh2.Range("A" & i), "dd.mm.yyyy"), , , xlWhole)
        If Not bul Is Nothing Then
        Sh2.Range("D" & i) = Sh1.Range("B" & x)
        End If
    End If
Next i
End Sub
 

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın NextLevel,

Ellerinize ve emeğinize sağlık çok güzel olmuş.
ALLAH sizden razı olsun. Hakkınızı helal ediniz lütfen.
Peki bu senaryoyu formül ile nasıl yaparız, formül yöntemi benim için daha önemli zira, yapacağim diğer çalışmalarada uygulamak istiyorum. Ayrıca formül yönteminide öğrenmek açısından.

Saygılarımla.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Kontrol edin
Parametre D sütunu için formülünüz.
Kod:
=İNDİS(Parametre!$B$1:$B$1000;KAÇINCI(H10;KAYDIR(Parametre!A:A;;TOPLA.ÇARPIM((YIL(A10)=YIL(Parametre!$C$2:$H$2))*(AY(A10)=AY(Parametre!$C$2:$H$2))*(GÜN(A10)=GÜN(Parametre!$C$2:$H$2))*SÜTUN(Parametre!$C$2:$H$2))-1;;);0)-MOD(KAÇINCI(H10;KAYDIR(Parametre!A:A;;TOPLA.ÇARPIM((YIL(A10)=YIL(Parametre!$C$2:$H$2))*(AY(A10)=AY(Parametre!$C$2:$H$2))*(GÜN(A10)=GÜN(Parametre!$C$2:$H$2))*SÜTUN(Parametre!$C$2:$H$2))-1;;);0);8)+EĞER(MOD(KAÇINCI(H10;KAYDIR(Parametre!A:A;;TOPLA.ÇARPIM((YIL(A10)=YIL(Parametre!$C$2:$H$2))*(AY(A10)=AY(Parametre!$C$2:$H$2))*(GÜN(A10)=GÜN(Parametre!$C$2:$H$2))*SÜTUN(Parametre!$C$2:$H$2))-1;;);0);8)>2;3;-5))
 

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın NextLevel,

Ellerinize ve emeğinize sağlık çok güzel ve eğitici bir çalışma oldu.
ALLAH sizden razı olsun.
Hakkınızı helal ediniz lütfen.

Saygılarımla,
 

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Datebase sayfanızın yedeğini aldıktan sonra,
aşağıdaki kodu bir Module içine yazıp çalıştırınız.
C++:
Sub İsimler()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim i As Integer, x As Integer
Dim bul As Range, tarih As Range

Set Sh1 = Sheets("Parametre")
Set Sh2 = Sheets("Database")

For i = 2 To Sh2.Range("A3").End(xlDown).Row
    Set bul = Sh1.Range("C:H").Find(Sh2.Range("H" & i), , , xlWhole)
    If Not bul Is Nothing Then
        x = bul.Row Mod 8
        If x > 2 Then
            x = bul.Row - x + 3
        Else
            x = bul.Row - x - 5
        End If
        Set tarih = Sh1.Range("2:2").Find(Format(Sh2.Range("A" & i), "dd.mm.yyyy"), , , xlWhole)
        If Not bul Is Nothing Then
        Sh2.Range("D" & i) = Sh1.Range("B" & x)
        End If
    End If
Next i
End Sub
Sayın NextLevel,

"Parametre" sayfasındaki tablolar arasındaki boşlukları silmemiz durumunda, mevcut kodu nasıl revize etmeliyim.

Saygılarımla,
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
x = bul.Row Mod 7
If x > 2 Then
x = bul.Row - x + 3
Else
x = bul.Row - x - 4
End If
 

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Çok teşekkür ederim.
Maaşallah hızır gibi bütün konulara yetişiyorsunuz.
ALLAH sizde ve sevdiklerinizden razı olsun.

Saygılarımla,
 
Üst