Birden fazla kritere göre fiyatları getirtme

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Hepinize merhabalar.

Hocalarım ekli dosyada üst tarafta firma adı, cins, kalite ve fiyat bilgisinin olduğu bir tablo ve yanında da bu firmaların nakliye fiyatlarının bulunduğu ayrı bir tablo var.

Bunların altında da hammadde girişlerini yaptığım tablo var. Veri girdiğim bölümde sarı ile işaretlediğim kriterleri yukarıdaki fiyat tablosunda arayıp u sütunundaki hammadde fiyat sütununa fiyatı getirtmek istiyorum. Aynı şekilde veri tablosunda firma adı ve nakliye firması kriterleriyle yukarıdaki nakliye fiyatı tablosundan nakliye fiyatlarını w sütununa getirtmek istiyorum. formülle yaptığımda dosya boyutu 40-50 mb civarına yükseliyor. Asıl dosyada 10binin üzerinde satır olunca işin içinden çıkılmıyor.

Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Yardım rica ediyorum. Teşekkürler şimdiden.
 
Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
Altın Üyelik Bitiş Tarihi
04-01-2024
gerçek dosyanızda son satırın bir altından başlayarak en son satıra kadar tüm satırları seçin ve silerek kaydedin. dosya boyutunuz bir hayli azalacaktır.. örneğinizde bile 1 milyon satıra kadar açık duruyor. dolayısı ile sorununuzun formülden kaynaklanmadığı kanaatindeyim. deneyip haber veriniz.

gönderdiğiniz dosya 21,5 mb dan 89 kb ye düştü.
 

Ekli dosyalar

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
gerçek dosyanızda son satırın bir altından başlayarak en son satıra kadar tüm satırları seçin ve silerek kaydedin. dosya boyutunuz bir hayli azalacaktır.. örneğinizde bile 1 milyon satıra kadar açık duruyor. dolayısı ile sorununuzun formülden kaynaklanmadığı kanaatindeyim. deneyip haber veriniz.

gönderdiğiniz dosya 21,5 mb dan 89 kb ye düştü.
Merhabalar. Hocam ilginize teşekkürler. Gerçek dosyamda kayıtlı 18bin satır var e hepsinin fiyat kısımları formüllü durumda. kayıt olmayan kısımları dediğiniz gibi sildiğimde bir şey değişmedi. Önceki kayıtlarda formüller olduğundan aynı kalıyor.
 
Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
Altın Üyelik Bitiş Tarihi
04-01-2024
değişir değişir. siz ana dosyayı gönderin. 18bin nere 1 milyon satır nere.
 
Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
Altın Üyelik Bitiş Tarihi
04-01-2024
sarıdan aşağı sildim. 614 kb a kadar düştü. hücrenin tamamını seçip sileceksiniz. hücrelerin içeriğini değil. soldaki sayılardan tutarak son hücreden aşağıda ulaşabildiğiniz son satıra kadar seçip sileceksiniz.
 

Ekli dosyalar

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Boyut kısmı halloldu teşekkür ederim. Peki fiyat sütunlarında formül kullanarak getirttiğim fiyatları vba ile getirtebilir miyim?
 
Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
Altın Üyelik Bitiş Tarihi
04-01-2024
makro konusunda başka arkadaşlar yardımcı olacaktır ama bence gerek yok. makrolu işlemlerde geri al tuşu aktifliğini yitireceğinden dolayı formülle çözülecek olanları formülle yapmak daha ideal geliyor bana. formül iyidir. kolay gelsin...
 

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Yardımlarınızı rica ediyorum. Teşekkürler şimdiden.
 

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Yardımcı olacak yok mudur acaba? Teşekkürler. :)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızda "R", "V" ve "X" sütunlarındaki formülleriniz standart yapıda mı?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu formüller bütün satırlara kod ile uygulansa sizin için sorun olur mu?

R sütunu ; =O39*P39*Q39/1000000
V sütunu ; =N39*U39
X sütunu ; =N39*W39
 

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Hayır hocam sorun olmaz. Onlar dediğim gibi ikisi sadece fiyat tablosundan gelen fiyatlarla tonu çarpıyorlar. Diğeri de ölçülerden m3 hesaplıyor.
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Fiyat_Guncelle()
    Dim Hammadde As Object, Nakliye As Object, Zaman As Double
    Dim Hammadde_Data As Variant, Nakliye_Data As Variant, Aranan As String
    Dim X As Long, Son As Long, Veri As Variant, Say As Long, Y As Byte
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Zaman = Timer
    
    Range("U38:U" & Rows.Count).ClearContents
    Range("W38:W" & Rows.Count).ClearContents
    
    Set Hammadde = CreateObject("Scripting.Dictionary")
    Set Nakliye = CreateObject("Scripting.Dictionary")
    
    Hammadde_Data = Range("C2:H35").Value
    
    For X = LBound(Hammadde_Data) To UBound(Hammadde_Data)
        Hammadde.Item(Hammadde_Data(X, 1) & Hammadde_Data(X, 2) & Hammadde_Data(X, 3)) = Hammadde_Data(X, 6)
    Next
    
    Nakliye_Data = Range("L22:O33").Value
    
    For X = LBound(Nakliye_Data) To UBound(Nakliye_Data)
        Nakliye.Item(Nakliye_Data(X, 1) & Nakliye_Data(X, 2)) = Nakliye_Data(X, 4)
    Next
    
    Son = Cells(Rows.Count, "C").End(3).Row
    Veri = Range("C38:X" & Son).Value
    
    ReDim Liste(1 To UBound(Veri), 1 To 22)
    
    For X = LBound(Veri) To UBound(Veri)
        Say = Say + 1
        For Y = 1 To 22
            Select Case Y
                Case 16
                    Liste(Say, Y) = Veri(X, 13) * Veri(X, 14) * Veri(X, 15) / 1000000
                Case 19
                    Aranan = Veri(X, 7) & Veri(X, 10) & Veri(X, 11)
                    If Hammadde.Exists(Aranan) Then
                        Liste(Say, Y) = Hammadde.Item(Aranan)
                    End If
                Case 20
                    Liste(Say, Y) = Veri(X, 12) * Liste(Say, 19)
                Case 21
                    Aranan = Veri(X, 7) & Veri(X, 17)
                    If Nakliye.Exists(Aranan) Then
                        Liste(Say, Y) = Nakliye.Item(Aranan)
                    End If
                Case 22
                    Liste(Say, Y) = Veri(X, 12) * Liste(Say, 21)
                Case Else
                    Liste(Say, Y) = Veri(X, Y)
            End Select
        Next
    Next
        
    Range("C38").Resize(UBound(Liste, 1), UBound(Liste, 2)) = Liste
    
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Hocam veridiğiniz kodu aynen kullandım. Sonucu ekte yine ekledim. Sizin de göreceğiniz üzere hammadde sütununa fiyatları getirmiş ancak yanındaki tutar kısmında sadece bir satırda sonuç var o da yanlış. Diğer nakliye fiyatı da tutarı da yine birer satır gelmişler ancak tutarı onun da yanlış. İlginize teşekkürler.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
NAKLİYE FİRMASI sütununu kullanmıyor musunuz?

Birde aradan bir satır silmişsiniz sanırım.
 

Suddedly

Altın Üye
Katılım
7 Ekim 2010
Mesajlar
210
Excel Vers. ve Dili
Excel 365
Excel 2019
Altın Üyelik Bitiş Tarihi
02-03-2028
Hocam aradan satır silmedim en azından bilerek yapmadım.
Nakliye firmasına gelince oraya o hammaddeyi kim taşıyorsa S sütununa elle yazıyorum. Yukarıdaki tabloya bakıp karşılığındaki fiyatı W sütununa yazıyor. Aynı şekilde I, L, ve M sütunlarına girdiğim verilere göre yukarı soldaki tablodan da hammadde fiyatını U sütununa yazdırıyorum. V ve X sütunlarında ise bu fiyatları N sütunundaki tonajla çarptırıyorum. Ancak benim istediğim şey tabii sizi de uğraştırmayacaksa veriyi girdikçe fiyat ve tutarları formül yazılı gibi anında hesaplanması. Hiç olmaz derseniz kayıt edince hesaplaması.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İlk eklediğiniz dosyanızda verileriniz 39. satırdan başlıyordu. Sanırım 1. satırı silmişsiniz.

Ek olarak NAKLİYE FİYATLARINI doğru şekilde alabilmek için "S" sütunu dolu olması gerekir. Sebebi ise L30 ve L31 hücreleridir. Aynı firmaya ait 2 farklı nakliye fiyatınız var.

Anında hesaplama işlemini KEŞKE en başından belirtseydiniz. Boşa kürek çekmiş olduk...
 
Üst