• DİKKAT

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

0 ları dikkate almayan ortalama kodu

Katılım
8 Haziran 2007
Mesajlar
401
Excel Vers. ve Dili
excel fonksiyonlar
Forumda eeği geçen herkese merhaba. Arkadaşlar A1:A4 arasında sırasıyla 1,0,3,0 gibi değerlerim olsun. 0 ları dikkate almadan yada 0 dan büyük olmak kaydıyla bir sütundaki rakamların ortalamasını makro ile nasıl alaırız ? İlgilenen arkadaşlara şimdiden teşekkürler. :)


WorksheetFunction.Average(syf1.Range(A1:A4")
 
Merhaba,

Kod:
Sub ortalama()
For i = 1 To 4
If Cells(i, 1) > 0 Then
s = s + WorksheetFunction.CountA(Range("A" & i))
t = WorksheetFunction.Sum(Range("A1:A" & i))
End If
Next i
MsgBox t / s
End Sub


farklı çözümlerde olabilir.
 
Merhaba,

Kod:
Sub ortalama()
For i = 1 To 4
If Cells(i, 1) > 0 Then
s = s + WorksheetFunction.CountA(Range("A" & i))
t = WorksheetFunction.Sum(Range("A1:A" & i))
End If
Next i
MsgBox t / s
End Sub


farklı çözümlerde olabilir.

Hocam ilginiz ve emeğiniz teşekkürler. Form aramamda buna benzer bir çözüm görmüştüm. Ben average fonksiyonu gibi bir çözüm merak etmiştim. Anlaşılan aramaya devam. İlginiz ve emeğiniz için tekrar teşekkürler :)
 
İki farklı ortalama alma örneği;

Kod:
Sub ORTALAMA_1()
    MsgBox Evaluate("=AVERAGE(IF(A1:A4>0,A1:A4))")
End Sub

Sub ORTALAMA_2()
    Dim WF As WorksheetFunction
    Set WF = WorksheetFunction
    MsgBox WF.SumIf(Range("A1:A4"), ">0", Range("A1:A4")) / WF.CountIf(Range("A1:A4"), ">0")
End Sub
 
Geri
Üst