• DİKKAT

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

Sumproduct

Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba,
Forumdaki örneklerden yararlanarak hazırladığım aşağıdaki kodda birinci satırdaki kod doğru hesaplama yaparken ikinci satırda değişkeni combobox1 den aldığımda sonuç 0 çıkıyor. Değişkeni combobox veya textboxdan almam gerekiyor.
TextBox1 = Format([SumProduct((ARŞİV!AX2:AX65536="KIRTASİYE") * (ARŞİV!BI2:BI65536="Stok Çıkış") * (ARŞİV!Af2:Af65536))], "#,##0.00")
TextBox1 = Format([SumProduct((ARŞİV!AX2:AX65536=" & ComboBox1.Value & ") * (ARŞİV!BI2:BI65536="Stok Çıkış") * (ARŞİV!Af2:Af65536))], "#,##0.00")
İkinci satırda combobox değerini nasıl belirtmeliyim?
İlgilenen arkadaşlara teşekkür ederim.
 
Combobox ta "KIRTASİYE" yoktur veya "KIRTASİYE" nin başında yada sonunda boşluk vardır.
Comboboxa veri yüklediğiniz yeri kontrol edin.

Eğer olmuyorsa dosyanızı ekleyin üzerinde bakalım.
 
Deneyiniz.

Kod:
Format([SumProduct((ARŞİV!AX2:AX65536=""" & ComboBox1.Value & """) * (ARŞİV!BI2:BI65536="Stok Çıkış") * (ARŞİV!Af2:Af65536))], "#,##0.00")
 
Merhaba Sayın dalgalikur ve Sayın Korhan Ayhan,
İlginize ve cevabınıza teşekkür ederim. İş seyahatim nedeniyle geri dönüşüm gecikti.
Comboboxtaki veriyi ve sayfa üzerindeki bilgileri tekrar kontrol ettim. Ancak sonuç yine aynı. Sayın Korhan Ayhan'ın gönderdiği kod ile de sonuç 0 veriyor. Dosyayı ekliyorum.
 

Ekli dosyalar

Bir dosya daha ekliyorum. Formdaki ilk butonda değişkeni Combobox1 den alıyor, ikinci butonda ise değişken olarak "KIRTASİYE" girdim.
 

Ekli dosyalar

Aşağıdaki gibi deneyin.:cool:
Kod:
Dim sh As Worksheet
Set sh = Sheets("ARŞİV")
TextBox1.Value = Format(WorksheetFunction.SumIfs(sh.Range("AF2:AF65536"), sh.Range("AX2:AX65536"), ComboBox1.Value, sh.Range("BI2:BI65536"), "Stok Çıkış"), "#,##0.00")
 
Merhaba Sayın Orion1,
Çözümünüz için teşekkür ederim. Sumproduct komutuna güzel bir alternatif oldu.:)
 
Deneyiniz.

Kod:
Private Sub CommandButton1_Click()
    TextBox1 = Format(Evaluate("SUMPRODUCT((ARŞİV!AX2:AX65536=""" & ComboBox1.Value & """)*(ARŞİV!BI2:BI65536=""Stok Çıkış"")*(ARŞİV!AF2:AF65536))"), "#,##0.00")
End Sub
 
Merhaba Sayın Korhan Ayhan,
Önce gecikmiş cevabım için özür diler ardından ilginiz ve çözüm öneriniz için teşekkür ederim. Sumproduct ile igili kodunuz doğru sonucu veriyor. Sayın Orion1'in SumIfs fonksiyonu ile arasında bir seçim yapmam zor olacak.:)
Esen kalın..
 
Yanlış bilmiyorsam ÇOKETOPLA (SUMIFS) daha hızlı çalışıyor. Onu kullanmanızı öneririm. Benim cevabım sadece formülün çalıştığını göstermek içindi.
 
Evet haklısınız Sayın Korhan Ayhan. Yaklaşık 30000 satır ve 16 değişken ile yaptığım denemede SUMIFS ile işlem 2 saniyede sonuçlanırken sumproduct 6 saniyede sonuç verdi. Diğer kullanıcılar için faydalı olur düşüncesiyle paylaşma ihtiyacı duydum. İlginiz için teşekkür eder esenlikler dilerim.
 
Evet excele eklenen yeni fonksiyonlar daha performanslı çalışıyor.
 
Geri
Üst