Soru 3 Hücreyi Diğer Sayfadaki 3 Hücre İle Eşitleme

bigblueboss

Altın Üye
Katılım
2 Ağustos 2010
Mesajlar
3
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
21-05-2025
Merhaba, acaba bana bir konuda yardımcı olabilir misiniz?
Elimde iki adet fiyat listesi var. Aynı excel dosyası içindeler ve biri Sayfa1 diğeri Sayfa2de
Her bir fiyat listesi de 3 sütundan oluşuyor.
İlk sütunda ÜRÜN KODU ikinci sütunda FİYAT ve son sütunda ise KUR bilgileri yer alıyor.
Satır adedi 1. sayfada 35000 ikinci sayfada 25000 civarındadır.

Ben Sayfa2de yer alan bu ürün bilgilerini Sayfa1de var olan ürün bilgileri ile eşleştirmek ve sonrasında da aralarında fiyat farkı var mı diye her ürünü en sona bir kontrol etmek istiyorum.
Örnek dosya : https://docs.google.com/spreadsheets/d/1tEh1IoM2BSUkXtxkqckp07zCtBhXQwclZu4oL4Pf00o/edit?usp=sharing

Daha önce hücre eşleştirme konularını takip ettim ama verilen makro örnekleri genelde bir hücreyi , aynı değere sahip başka bir hücrenin yanına getiriyordu. Burada ise ÜRÜN KODU değerini dikkate alarak eşleştirme yaparken hemen sağında bulunan FİYAT ve KUR bilgilerini içeren hücreleri de beraberinde alıp diğer sayfa aktarmalı. Özetle 3 sütundan oluşan her iki listeyi de eşleyip 6 sütunlu tek bir liste haline getirmeli ve tabii sonunda 7. bir sütunda da çıkarma işlemi yaparak fiyat farklarını göstermeli. (Makro bilmiyorum, sadece hazır yazılmış makroları kullanabiliyorum ve kendi bilgim de sadece o en sondaki çıkartma formülünü yapmaya yetiyor açıkçası)
Yardımcı olursanız müteşekkir olurum
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makroyu deneyiniz. Verilerin çokluğuna göre tamamlanması uzun sürebilir.

PHP:
Sub karsilastir()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
son1 = s1.Cells(Rows.Count, "A").End(3).Row
son2 = s2.Cells(Rows.Count, "A").End(3).Row
Application.ScreenUpdating = False
    For i = 2 To son1
        If WorksheetFunction.CountIf(s2.Range("A1:A" & son2), s1.Cells(i, "A")) > 0 Then
            s1.Cells(i, "D") = WorksheetFunction.VLookup(s1.Cells(i, "A"), s2.Range("A1:C" & son2), 1, 0)
            s1.Cells(i, "E") = WorksheetFunction.VLookup(s1.Cells(i, "A"), s2.Range("A1:C" & son2), 2, 0)
            s1.Cells(i, "F") = WorksheetFunction.VLookup(s1.Cells(i, "A"), s2.Range("A1:C" & son2), 3, 0)
            s1.Cells(i, "G") = s1.Cells(i, "B") - s1.Cells(i, "E")
        End If
    Next
Application.ScreenUpdating = True
End Sub
Bu arada zaten kodlar karşılaştırıldığından D sütununda aynı kodun tekrar yazılmasına gerek yok bence.
 

bigblueboss

Altın Üye
Katılım
2 Ağustos 2010
Mesajlar
3
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
21-05-2025
Sayın Yusuf44,

Çok teşekkür ederim, mükemmel şekilde çalıştı ve beni büyük bir dertten kurtardınız, sağolun varolun. Bu kadar süratli yanıtladığınız için de ayrıca teşekkür ederim. Saygılarımla...
 

bigblueboss

Altın Üye
Katılım
2 Ağustos 2010
Mesajlar
3
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
21-05-2025
Teşekkür ederim
 
Üst