Excel VBA ile Ortalama Hesaplama

Excel VBA ile Ortalama Hesaplama: Kolay ve Hızlı Yöntem
Excel VBA Ortalama Hesaplama

1. Örnek Veri Tablosu

Aşağıdaki tablo üzerinde ortalama hesaplamayı öğreneceğiz.

Ürün Satış
Laptop 22
Mouse 43
Klavye 45
Monitör 30
USB Bellek 40
Yazıcı 44
Kulaklık 4
A1:B8 aralığı - Satış verileri (Ortalama: 22+43+45+30+40+44+4 = 228 / 7 = 32,57)

2. Yöntem 1: Average ile Ortalama Hesaplama

Average fonksiyonu, belirli bir aralıktaki sayıların ortalamasını hızlıca hesaplar.

Sub OrtalamaAl()
    Dim aralik As Range
    Dim ortalama As Double
    
    Set aralik = Range("B2:B8")
    ortalama = Application.WorksheetFunction.Average(aralik)
    Range("D3").Value = ortalama
End Sub

📌 Kodda Kullanılanlar

  • Dim aralik As Range → Aralık için değişken tanımlar
  • Dim ortalama As Double → Ondalıklı sayı için değişken tanımlar
  • Set aralik = Range("B2:B8") → Hangi hücreleri kullanacağını belirler
  • Application.WorksheetFunction.Average → Excel'in AVERAGE formülünü çalıştırır
  • Range("D3").Value = ortalama → Sonucu D3 hücresine yazar

📊 Sonuç:

Ürün Satış
Laptop22
Mouse43
Klavye45
Monitör30
USB Bellek40
Yazıcı44
Kulaklık4
✅ Ortalama: 32,57 (D3)
🟢 Ortalamaya katılan hücreler yeşil · Sonuç D3'te

📌 Sonuç: 32,57

3. Yöntem 2: For Each Döngüsü ile Ortalama Hesaplama

For Each döngüsü ile her hücreyi tek tek gezerek toplamı bulur ve ortalamayı hesaplar.

Sub OrtalamaDongu()
    Dim hucre As Range
    Dim toplam As Double
    Dim sayac As Integer
    
    For Each hucre In Range("B2:B8")
        If IsNumeric(hucre.Value) Then
            toplam = toplam + hucre.Value
            sayac = sayac + 1
        End If
    Next hucre
    
    Range("D3").Value = toplam / sayac
End Sub

📌 Kodda Kullanılanlar

  • Dim hucre As Range → Her bir hücre için değişken tanımlar
  • Dim toplam As Double → Toplam için değişken tanımlar
  • Dim sayac As Integer → Kaç sayı olduğunu sayar
  • For Each hucre In Range("B2:B8") → Her hücreyi dolaş
  • If IsNumeric(hucre.Value) Then → Hücre sayısal mı kontrol et
  • toplam = toplam + hucre.Value → Toplama ekle
  • sayac = sayac + 1 → Sayacı 1 artır
  • Next hucre → Bir sonraki hücreye geç
  • Range("D3").Value = toplam / sayac → Sonucu D3'e yaz

🔄 Sonuç:

Ürün Satış
Laptop22
Mouse43
Klavye45
Monitör30
USB Bellek40
Yazıcı44
Kulaklık4
✅ Ortalama: 32,57 (D3)
🟢 Sayısal hücreler yeşil · Sonuç D3'te

📌 Sonuç: 32,57

4. Yöntem 3: Dinamik Aralık ile Ortalama Hesaplama

Dinamik aralık ile veri sayısı değişse bile otomatik olarak güncellenen bir ortalama hesaplayabilirsiniz.

Sub DinamikOrtalama()
    Dim sonSatir As Long
    
    sonSatir = Cells(Rows.Count, 2).End(xlUp).Row
    Range("D3").Value = Application.WorksheetFunction.Average(Range("B2:B" & sonSatir))
End Sub

📌 Kodda Kullanılanlar

  • Dim sonSatir As Long → Son satır numarası için değişken tanımlar
  • Cells(Rows.Count, 2) → B sütununun en alt hücresi
  • .End(xlUp).Row → Yukarı doğru gidip son dolu satırı bulur
  • Range("B2:B" & sonSatir) → B2'den son satıra kadar dinamik aralık oluşturur
  • Application.WorksheetFunction.Average → Excel'in AVERAGE formülünü çalıştırır
  • Range("D3").Value → Sonucu D3 hücresine yazar

📊 Sonuç:

Ürün Satış
Laptop22
Mouse43
Klavye45
Monitör30
USB Bellek40
Yazıcı44
Kulaklık4
✅ Ortalama: 32,57 (D3)
🟢 Dinamik aralıktaki tüm hücreler yeşil · Sonuç D3'te

📌 Sonuç: 32,57 · Veri eklendikçe otomatik güncellenir

5. Geliştirici Sekmesini Aktifleştirme

1. Geliştirici Sekmesini Aktifleştirin

Detaylı bilgi için tıklayın.

Geliştirici sekmesi
⚙️ Geliştirici sekmesi

3. Modül Ekleyin

Makro yazma rehberi için tıklayın.

Modül ekleme
📝 Modül ekleme

2. VBA Düzenleyici'yi Açın

Alt + F11 (Win) / Option + F11 (Mac)

VBA Düzenleyici
📝 VBA Düzenleyici

4. Kodu Çalıştırın

F5 ile çalıştırın.

F5

▶️ Makroyu çalıştır

📋 Makro çalıştırma

6. 3 Yöntemin Karşılaştırması

Özellik Average For Each Dinamik Aralık
⚡ Hız ✅ Çok hızlı ⚠️ Yavaş ✅ Hızlı
📝 Kod Uzunluğu ✅ Çok kısa ⚠️ Orta ✅ Kısa
🔧 Esneklik ⚠️ Sınırlı ✅ Yüksek ✅ Yüksek
🔄 Otomatik Güncelleme ❌ Hayır ❌ Hayır ✅ Evet
🎨 Renklendirme ✅ Var ✅ Var ✅ Var
🍏 Mac Uyumu ✅ Çalışır ✅ Çalışır ✅ Çalışır
💡 Önerilen Kullanım Hızlı hesaplama ⭐ Özel koşullar Dinamik veri
💡 Özet: ✅ Tercih Edilen · ⚠️ Orta · ❌ Eksik

🚀 Hızlı Karar: Hızlı hesaplama → Average · Özel koşullar → For Each · Dinamik veri → Dinamik Aralık

7. Sıkça Sorulan Sorular

01 Excel VBA ile ortalama nasıl hesaplanır?

Application.WorksheetFunction.Average(aralik) kodunu kullanabilirsiniz.

02 Ortalama hesaplarken hata alıyorum, ne yapmalıyım?

Aralıkta sayısal olmayan değerleri kontrol edin. If IsNumeric(hucre.Value) ile sadece sayıları hesaba katın.

03 Dinamik aralıkla ortalama nasıl hesaplanır?

Cells(Rows.Count, 2).End(xlUp).Row ile son satırı bulup dinamik aralık oluşturun.

04 Mac'te ortalama hesaplama çalışır mı?

Evet, Mac'te de aynı kodlar çalışır.

05 Ortalama sonucunu hücreye nasıl yazarım?

Range("D3").Value = ortalama ile yazabilirsiniz.

06 Sadece koşula uyan hücrelerin ortalamasını nasıl alırım?

AverageIf veya AverageIfs fonksiyonlarını kullanabilirsiniz.

💡 İpucu: Makroları çalıştırmadan önce dosyanızı yedeklemeyi unutmayın.
🤖 Akıllı Arama Asistanı
💬 Merhaba! Size nasıl yardımcı olabilirim?
Excel Asistanı
👋 Merhaba! Excel ile ilgili ne öğrenmek istersin? Örn: DÜŞEYARA nasıl kullanılır?
DÜŞEYARA Pivot Tablo Gantt Şeması