Worksheet.Function.Sumproduct Hakkında

Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Merhaba,

Aşağıdaki gibi bir tablom var;

A Sütunu B Sütunu
1.satır Ocak 100
2.satır Şubat 120
3.satır Şubat 150
4.satır Mart 500
5.satır Mart 700

Normalde Topla.çarpım Fonksiyonunu (Sanırım biraz da amacının dışında kullanarak) herhangi bir hücreye

Kod:
=TOPLA.ÇARPIM((1=1)*(A1:A5=A2);B1:B5)
şeklinde girdiğimde A2 Hücresinin Değeri Olan "Şubat" verisini içeren satırların B Sütunundaki karşılıklarının toplamı olan 270 değerini alıyorum.

Şimdi aynı fonksiyonu aynı şekliyle kullanarak sonucunu makro içinde bir değişkene atamam gerekiyor. Bunun için doğru yol

Kod:
Sonuc = WorksheetFunction.SumProduct((1 = 1) * (Range("A1:A5").Value = Range("A2").Value), Range("B1:B5").Value)
şeklinde olmalı. Ancak bu satırı çalıştırdığımda "TYPE MISMATCH" hatası alıyorum.

Nerede yanlış yapıyorum acaba?

Not1: "Sonuc" değişkenini "Dim Sonuc As Integer" olarak deklare ettiğimde de hiçbir şekilde deklare etmediğimde de aynı hatayı alıyorum. Yani sorun değişken ile değil fonksiyonun kod içindeki yazılışı ile ilgili sanırım.

Not2: "ETOPLA", "DÜŞEYARA", ...v.s. gibi fonksiyonlar işimi görmediği için önerilerin "TOPLA.ÇARPIM" fonksiyonu ile yapılmasını rica ediyorum. :)
 
Son düzenleme:
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Çok teşekkür ederim Levent Bey, tam aradığım çözüm oldu.

Bu arada verdiğiniz linkten kendime uyarladığım sonuç şu şekilde oldu (ileride arama yapanlara kolaylık olsun :)).

Kod:
Sonuc = Evaluate("SumProduct((1=1)*(A1:A6=A2),B1:B6)")
 
Üst