• DİKKAT

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

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

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
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.
 
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..
 
Selamlar,

Aşağıdaki şekilde kullanabilirsiniz.

Kod:
Bul = Evaluate("=SumProduct((B2:B65536 = ""A"") * (D2:D65536=""P""))")
 
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")
 
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:
 
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.
 
Kod:
Bul = Evaluate("=SumProduct((Range(Cells(2,2),Cells(65536,2)) = ""A"") * (Range(Cells(2,4),Cells(65536,4))=""P""))")
 
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.
 
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
 
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.
 
Selamlar,

Ekteki örneği incelermisiniz.
 
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:
 
Geri
Üst