SUMPRODUCT VBA

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba arkadaşlar,
Aşağıdaki kod da da göreceğiniz üzere amacım. Sheet2 nin 9. kolonuna Sheet2 nin A kolunundaki dolu son ücreye kadar sumproduct formülünü yazmaya çalışıyorum ama hata alıyor.
İki kontrolüm var Sheet2 nin Akolonundaki değerleri SHEET1!A2:A19151 de
SHEET1!e2:e19151 = 54 ise
SHEET1!l2:l9151 değerleri toplayıp (Cells(h, 9).Value) Sheet2 nin dokunca kolonuna A kolonundaki son hücreye kadar yazması
İlginiz ve yardımlarınız için şimdiden teşekkür ederim.



Kod:
Sub topla_çarpım_sheet()
Sheet2.Select
 
For h = 2 To WorksheetFunction.CountA(Range("a:a"))
Cells(h, 9).Value = Evaluate("=Sumproduct(--((SHEET1!A2:A19151 = Cells(h,1))*(SHEET1!e2:e19151 = 54),--((SHEET1!l2:l9151)))")

Next h
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi deneyiniz.

Kod:
Sub topla_çarpım_sheet()
    Sheet2.Select
     
    For h = 2 To WorksheetFunction.CountA(Range("a:a"))
        Cells(h, 9).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!E2:E19151=54),--(Sheet1!l2:l19151))")
    Next h
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Sub topla_çarpım_sheet() Sheet2.Select For h = 2 To WorksheetFunction.CountA(Range("a:a")) Cells(h, 9).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!E2:E19151=54),--(Sheet1!l2:l19151))") Next h End Sub
Öncelikle ilginiz için teşekkür ederim. Yine sonuç vermiyor ben exceli paylaşıcam ama ekleyemedim dosyayı
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Normal üyelerimiz harici dosya barındırma sitelerine dosyalarını yükleyip link paylaşımı yapabiliyorlar.

Altın üyelik alma durumunuz varsa forumun diğer özelliklerinden de faydalanabilirsiniz.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Aşağıdaki gibi deneyiniz.

Kod:
Sub topla_çarpım_sheet()
    Sheet2.Select
  
    For h = 2 To WorksheetFunction.CountA(Range("a:a"))
        Cells(h, 9).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!E2:E19151=54),--(Sheet1!l2:l19151))")
    Next h
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tahmin ettiğim gibi sayı-metin biçimi sıkıntısı oluşmuş. Siz 54 diyorsunuz ama bu veri diğer sayfada metin formatında görünüyor.

Kodu aşağıdaki gibi değiştirip deneyiniz.

Kod:
Sub topla_çarpım_sheet()
    Sheet2.Select
     
    For h = 2 To WorksheetFunction.CountA(Range("a:a"))
        Cells(h, 9).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!f2:f19151=""" & Range("I1").Value & """),--(Sheet1!m2:m19151))")
    Next h
    MsgBox "işlem tamam"
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Üstadım ben biraz uğraştım ama olmadı. Aynı data üzerinde sheet1 deki R kolonunda sheet2 nin J1 hücresindeki tarihi aratıp (ay ve yıl olarak) bakıp J2 ye toplam getirse.

Kod:
Sub topla_çarpım_sheet()
    Sheet2.Select
    
    For h = 2 To WorksheetFunction.CountA(Range("a:a"))
        Cells(h, 9).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!f2:f19151=""" & Range("I1").Value & """),--(Sheet1!m2:m19151))")
    Next h
    MsgBox "işlem tamam"
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Ben birde tarihi ekledim içine ama hata alıyorum. Amacım ekteki dosyada sheet1 deki R kolonunun da sheet2 deki tarihe bakıp toplamını getirmek
Kod:
Sub topla_çarpımfff()

    Sheet2.Select

 

    For h = 2 To WorksheetFunction.CountA(Range("a:a"))

        'Cells(h, 9).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!f2:f19151=""57""),--(Sheet1!m2:m19151))")
        Cells(h, 10).Value = Evaluate("=Sumproduct(--(Sheet1!A2:A19151=""" & Cells(h, 1) & """)*(Sheet1!f2:f19151=""57"")*((Month(sheet1!r2:r19151)*(month(range("j2")),--(Sheet1!m2:m19151))") * -1
        

    Next h

End Sub
dosyam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub Criteria_Sumproduct()
    Dim Son As Long, X As Long
        
    Sheet2.Select

    Son = Sheets("Sheet1").Range("A" & Rows.Count).End(3).Row

    For X = 2 To WorksheetFunction.CountA(Range("A:A"))
        Cells(X, 9).Value = Evaluate("=SUMPRODUCT(--(Sheet1!A2:A" & Son & "=""" & Cells(X, 1) & """)*(Sheet1!F2:F" & Son & "=""" & Range("I1").Value & """)*(TEXT(Sheet1!R2:R" & Son & ",""aaayyy"")=TEXT(J1,""aaayyy"")),--(Sheet1!M2:M" & Son & "))")
    Next
    
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub Criteria_Sumproduct()
    Dim Son As Long, X As Long
       
    Sheet2.Select

    Son = Sheets("Sheet1").Range("A" & Rows.Count).End(3).Row

    For X = 2 To WorksheetFunction.CountA(Range("A:A"))
        Cells(X, 9).Value = Evaluate("=SUMPRODUCT(--(Sheet1!A2:A" & Son & "=""" & Cells(X, 1) & """)*(Sheet1!F2:F" & Son & "=""" & Range("I1").Value & """)*(TEXT(Sheet1!R2:R" & Son & ",""aaayyy"")=TEXT(J1,""aaayyy"")),--(Sheet1!M2:M" & Son & "))")
    Next
   
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
Elinize sağlık üstatım ama değer gelmiyor, enteresan hata da almıyor ama
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sanırım siz İngilizce ofis kullanıyorsunuz.

Bir de aşağıdaki gibi deneyiniz.

Kod:
Sub Criteria_Sumproduct()
    Dim Son As Long, X As Long
        
    Sheet2.Select

    Son = Sheets("Sheet1").Range("A" & Rows.Count).End(3).Row

    For X = 2 To WorksheetFunction.CountA(Range("A:A"))
        Cells(X, 9).Value = Evaluate("=SUMPRODUCT(--(Sheet1!A2:A" & Son & "=""" & Cells(X, 1) & """)*(Sheet1!F2:F" & Son & "=""" & Range("I1").Value & """)*(TEXT(Sheet1!R2:R" & Son & ",""mmmyyy"")=TEXT(J1,""mmmyyy"")),--(Sheet1!M2:M" & Son & "))")
    Next
    
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Sanırım siz İngilizce ofis kullanıyorsunuz.

Bir de aşağıdaki gibi deneyiniz.

Kod:
Sub Criteria_Sumproduct()
    Dim Son As Long, X As Long
       
    Sheet2.Select

    Son = Sheets("Sheet1").Range("A" & Rows.Count).End(3).Row

    For X = 2 To WorksheetFunction.CountA(Range("A:A"))
        Cells(X, 9).Value = Evaluate("=SUMPRODUCT(--(Sheet1!A2:A" & Son & "=""" & Cells(X, 1) & """)*(Sheet1!F2:F" & Son & "=""" & Range("I1").Value & """)*(TEXT(Sheet1!R2:R" & Son & ",""mmmyyy"")=TEXT(J1,""mmmyyy"")),--(Sheet1!M2:M" & Son & "))")
    Next
   
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
Range(I1) e göre toplamını getirdi, ama ay olarak Range(j1) e değer alamadım. Ordaki değer tarih olduğu için olabilir mi?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Uyguladığınız dosyayı paylaşırsanız kontrol edebilirim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sheet1 sayfasındaki "F" sütunundaki değerleriniz ya metin biçiminde olmalı ya da sayı biçiminde olmalıdır. Bunu kontrol ederseniz sorun çözülecektir.

Aşağıdaki kod ile "F" sütunu metin olarak değerlendirilir.

Kod:
Sub Criteria_Sumproduct()

    Dim Son As Long, X As Long
       
    Sheet2.Select

    Son = Sheets("Sheet1").Range("A" & Rows.Count).End(3).Row

    For X = 2 To WorksheetFunction.CountA(Range("A:A"))
        Cells(X, 9).Value = Evaluate("=SUMPRODUCT(--(Sheet1!A2:A" & Son & "=""" & Cells(X, 1) & """)*(CLEAN(Sheet1!F2:F" & Son & ")=""" & Range("I1").Value & """)*(TEXT(Sheet1!R2:R" & Son & ",""mmmyyy"")=TEXT(J1,""mmmyyy"")),--(Sheet1!M2:M" & Son & "))")
    Next
   
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,515
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz J1 hücersine sorgulamak istediğiniz ayın herhangi bir gününü yazabilirsiniz. #9 nolu mesajınızda belirttiğiniz gibi kod ay ve yıl olarak karşılaştırma yapıyor. Güne hiç bakmıyor.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Siz J1 hücersine sorgulamak istediğiniz ayın herhangi bir gününü yazabilirsiniz. #9 nolu mesajınızda belirttiğiniz gibi kod ay ve yıl olarak karşılaştırma yapıyor. Güne hiç bakmıyor.
Aynen J1 bir ay yazılı ama sonuç gelmiyor. Siz çalıştırdığınızda sonuç alabildiniz mi benim dosyamda. R
 
Üst