• DİKKAT

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

ORTALAMA HESAPLAMA

Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Arkadaşlar ekte bir belge var. Yapmak istediğim şu;

95 kişilik not girişi var. Ancak 95 veri girişi olmayacak. bir kısmı boş olacak bunların.
Kaç tane veri girişi yapılmışsa, sadece bunların ortalaması alınabilir mi?
VBA ile olmasını istiyorum.
Birde isim soyisim girilmeyen satırları gizleyecek makro yazılabilir mi?

Şimdiden teşekkür ediyorum.

http://dosya.co/hjve9zai5vxl/ort.xls.html
 

Ekli dosyalar

  • ort.xls
    ort.xls
    36 KB · Görüntüleme: 13
Ya da şöyle sorayım;
VBA ile
Sayfa 1 de C3 ile C96 arasındaki sayıların ortalamasını C97 ye nasıl yazdırabilirim?
 
Merhaba,

Aşağıda vermiş olduğum kod, sizin belirttiğiniz gibi Sayfa1 de c3:c96 aralığını topluyor, kaç dolu hücre var sayıyor ve c97 ye ortalamasını yazıyor.
Forumda bir kaç konuya göz attıktan sonra oluşan kod:
Rich (BB code):
Sub ortalama()
Dim toplam As Integer
Dim dolu As Integer
toplam = WorksheetFunction.Sum([C3:C96])
dolu = WorksheetFunction.CountA(Sheets("Sayfa1").Range("C3:C96"))
Range("C97").Value = toplam / dolu
End Sub

İyi çalışmalar.
 
Merhaba,

Aşağıda vermiş olduğum kod, sizin belirttiğiniz gibi Sayfa1 de c3:c96 aralığını topluyor, kaç dolu hücre var sayıyor ve c97 ye ortalamasını yazıyor.
Forumda bir kaç konuya göz attıktan sonra oluşan kod:
Rich (BB code):
Sub ortalama()
Dim toplam As Integer
Dim dolu As Integer
toplam = WorksheetFunction.Sum([C3:C96])
dolu = WorksheetFunction.CountA(Sheets("Sayfa1").Range("C3:C96"))
Range("C97").Value = toplam / dolu
End Sub

İyi çalışmalar.

Teşekkürederim.Ancak kod hata verdi.
 
Ekli Dosyayı inceleyiniz.
 

Ekli dosyalar

  • ort.xls
    ort.xls
    89.5 KB · Görüntüleme: 28
Alternatif olarak
Kod:
Sub ortalama()
Dim s1 As Worksheet
Set s1 = Sheets("Sayfa1")
For i = 4 To 7
s1.Cells(95, i).ClearContents
say = WorksheetFunction.Count(s1.Range(s1.Cells(5, i),s1.Cells(94, i)))
If say> 0 Then
s1.Cells(95, i) = WorksheetFunction.Average(s1.Range(s1.Cells(5, i),s1.Cells(94, i)))
s1.Cells(95, i).Font.Size = 14
s1.Cells(95, i).Font.Bold = True
s1.Cells(95, i).NumberFormat = "0.00"
End If
Next i
End Sub
 
Son düzenleme:
Kod:
Sub Makro1()
    ActiveSheet.Range("$A$1:$G$95").AutoFilter Field:=3, Criteria1:="<>"
End Sub
Yukardaki kod isim soyisim bilgisi olmayan satırları gizler.
D95 hücresine yazdığınız =ALTTOPLAM(101;F5:F94) formül ise ortalamayı alır.
 
Buda bir başka alternatif olsun

Kod:
Sub OrtalamaAl()
    Range("D95").Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-90]C:R[-1]C)/COUNTA(R[-90]C:R[-1]C)"
    Selection.AutoFill Destination:=Range("D95:G95"), Type:=xlFillDefault
        Range("D95:G95").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C95").Select
End Sub
 
Geri
Üst