TOPLA.ÇARPIM Formülünü WorkSheetFunction'a Çevirmek

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhabalar.
=TOPLA.ÇARPIM((B2:B65536="A")*(D2:D65536="P"))
Yukarıdaki Formülü bul değişkenine WorksheetFunction olarak yazmak istiyorum.
bul=WorksheetFunction.........
Teşekkür ederim.İyi çalışmalar.
 
Katılım
5 Şubat 2005
Mesajlar
114
Altın Üyelik Bitiş Tarihi
03-03-2022
Merhabalar,
topla.carpim vba da nasıl uygulanıyor bilmiyorum, fakat hemen bir fonksiyon oluşturarak o işi hallettim. Verdiğiniz ifadedeki "A" ve "P" lere bir anlam getiremedim. Fonksiyon:
Kod:
Function toplacarpim(ilksutun As Range, ikincisutun As Range)
Dim ilksutuntara As Range
Dim ikincisutuntara As Range
Dim Toplam As Integer
Dim carpim As Integer
Dim i As Integer
Toplam = 0
i = 0
For Each ilksutuntara In ilksutun
    For Each ikincisutuntara In ikincisutun
    i = i + 1
    carpim = ilksutuntara.Value * ikincisutuntara.Offset(i - 1, 0)
    Toplam = Toplam + carpim
    GoTo devam
    Next
devam:
Next
toplacarpim = Toplam
End Function
Uygulaması:
Kod:
bul=toplacarpim("b2:b65536","d2:d65536")
Benim tavsiyem, aralığı bu kadar geniş tutmamak ve bunun yerine:
Kod:
bul=toplacarpim(Range("b2:b" &[b65536].End(xlup).row),Range("d2:d" &[d65536].End(xlup).row))
Kolay Gelsin..
 

Korhan Ayhan

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

Aşağıdaki şekilde kullanabilirsiniz.

Kod:
Bul = Evaluate("=SumProduct((B2:B65536 = ""A"") * (D2:D65536=""P""))")
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhabalar.
Yanıtınız için Teşekkür ederim.
Ancak bul makrosunu çalıştıramadım.
A ve P lerin anlamı ise şu:
B sütununda bazı hücrelerde "A" metin girilmiş.
D sütunundada bazı hücrelerde "P" metin girilmiş.
B sütununda Girilen metin "A" ise D sütununa bak.
D sütununda girilen metin "P" ise bu her iki şartın sağlandığı
sadece 1 sütunda hücre adedini say.
Bu işlemi Üstteki yazdığım Formül ile yapabiliyorum.
Ama WorksheetFunction'a çeviremedim.
Eğer tek bir sütunu sorgulasa idim.O zaman Eğersay Formülünü kullanacak idim.Tabi bu formülü WorksheetFunction'a çevirecektim.
=Eğersay(B:B;"A")
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhabalar.
Sayın COST_CONTROL Arkadaşımıza teşekkür ederim.
Problem çözüldü.İlgilenen tüm arkadaşlarıma teşekkür ederim.
:hey:
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhabalar.
Değişken olacak şekilde nasıl kullanabiliriz.Acaba bu fonksiyonu.
Mesela; B sütunu yerine Sut=2
D sütunu yerine sut=4,
2nci satır yerine sat1=2,Son satır yerine sat2=65536.
Acaba Bu şekilde değişken olacak şekilde değiştirebilirmiyiz?
Bu şekli ile kullanmam gerekiyor.
Tekrar teşekkür ederim.
 
Katılım
5 Şubat 2005
Mesajlar
114
Altın Üyelik Bitiş Tarihi
03-03-2022
Kod:
Bul = Evaluate("=SumProduct((Range(Cells(2,2),Cells(65536,2)) = ""A"") * (Range(Cells(2,4),Cells(65536,4))=""P""))")
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
mith' Alıntı:
Kod:
Bul = Evaluate("=SumProduct((Range(Cells(2,2),Cells(65536,2)) = ""A"") * (Range(Cells(2,4),Cells(65536,4))=""P""))")
Merhabalar.
Msgbox Bul dediğimde error 2029 hatasını veriyor.
 

Korhan Ayhan

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

Aşağıdaki şekilde işinizi görürmü ?

Kod:
Sub Hesapla()
Aralık1 = Range(Cells(2, "B"), Cells(65536, "B")).Address
Aralık2 = Range(Cells(2, "D"), Cells(65536, "D")).Address
Bul = Evaluate("=SumProduct((" & Aralık1 & " = ""A"") * (" & Aralık2 & " =""P""))")
MsgBox "İşlem sonucu  =  " & Bul, vbInformation
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
COST_CONTROL' Alıntı:
Selamlar,

Aşağıdaki şekilde işinizi görürmü ?

Kod:
Sub Hesapla()
Aralık1 = Range(Cells(2, "B"), Cells(65536, "B")).Address
Aralık2 = Range(Cells(2, "D"), Cells(65536, "D")).Address
Bul = Evaluate("=SumProduct((" & Aralık1 & " = ""A"") * (" & Aralık2 & " =""P""))")
MsgBox "İşlem sonucu  =  " & Bul, vbInformation
End Sub
Merhabalar.
Yukarıdaki ""A"" yazan yeri Textbox'tan girilecek herhengi bir değer olarak değiştirebilirmiyiz.Bu olduğunda Benim sorunum çözülmüş oluyor.
 

Korhan Ayhan

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

Ekteki örneği incelermisiniz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhabalar.
Sayın :COST_CONTROL
Çok teşekkürler.
Bende tam böyle bir şey istiyordum.
Tekrar teşekkür eder ,iyi çalışmalar dilerim.
:hey:
 
Üst