Excel VBA ile TOPLAÇARPIM Formülü Nasıl Kullanılır?

Excel VBA ile TOPLAÇARPIM (SUMPRODUCT) Kullanımı: Koşullu ve Çoklu Aralık

Excel VBA ile TOPLAÇARPIM: Koşullu ve Çoklu Aralık Hesaplamaları

Temel Excel Ekibi Güncelleme: 07 Ağustos 2026 Okuma Süresi: 5 dk

Excel VBA ile TOPLAÇARPIM: Koşullu ve Çoklu Aralık Hesaplamaları

🟩 VBA MAKRO | ORTA SEVİYE | 5 DAKİKA OKUMA

TOPLAÇARPIM (SUMPRODUCT), Excel'in en güçlü ve çok yönlü fonksiyonlarından biridir. Birden fazla aralıktaki değerleri çarparak toplar ve koşullu hesaplamalar için mükemmel bir alternatiftir. VBA ile bu fonksiyonu kullanarak, veri analizi süreçlerinizi otomatikleştirebilir ve daha dinamik çözümler geliştirebilirsiniz.

Bu makale sonunda şunları öğreneceksiniz:

  • TOPLAÇARPIM fonksiyonunun temel mantığı
  • VBA'da SumProduct kullanımı
  • Koşullu hesaplamalar yapma
  • Ağırlıklı ortalama hesaplama
  • Çoklu aralık ile çalışma

Bu makale hangi soruları cevaplar?

  • "Excel VBA ile TOPLAÇARPIM nasıl kullanılır?"
  • "Koşullu TOPLAÇARPIM nasıl yapılır?"
  • "Ağırlıklı ortalama nasıl hesaplanır?"
  • "Birden fazla aralıkla çalışmak mümkün mü?"
  • "Mac'te VBA'da TOPLAÇARPIM çalışır mı?"

01 TOPLAÇARPIM Nedir?

TOPLAÇARPIM (SUMPRODUCT), Excel'de bir veya daha fazla aralıktaki hücrelerin çarpımlarını alıp toplayan bir fonksiyondur. Örneğin, iki sütundaki değerleri çarpıp toplamak için kullanılır. Ayrıca, koşullu toplama işlemleri için de ÇOKEĞER (SUMIFS) fonksiyonuna alternatif olarak kullanılabilir.

Kullanım Alanları:

  • Ağırlıklı Ortalama: Farklı ağırlıklara sahip değerlerin ortalaması
  • Koşullu Toplama: Belirli kriterleri sağlayan değerlerin toplamı
  • Çapraz Analiz: Farklı veri kümeleri arasındaki ilişkiler. Pivot tablo ile birlikte kullanabilirsiniz.
  • Veri Özetleme: Büyük veri setlerini özetleme

İpucu

TOPLAÇARPIM, ÇOKEĞER'den daha esnektir çünkü Boolean (DOĞRU/YANLIŞ) ifadelerle doğrudan çalışabilir. Temel makro formülleri hakkında daha fazla bilgi edinin.

Application.WorksheetFunction.SumProduct

= SUMPRODUCT(aralik1, aralik2)

📋 VBA TOPLAÇARPIM kullanımı

02 Makro Yazmaya Başlama

Excel'de makro yazmaya başlamak için öncelikle Geliştirici sekmesinin aktif olması gerekir. Bu sekme, VBA düzenleyicisine erişmenizi ve modüllerinizi oluşturmanızı sağlar. Geliştirici sekmesini aktif etmek, VBA düzenleyicisini açmak ve modül oluşturmak için aşağıdaki adımları izleyiniz.

1 Geliştirici Sekmesini Aktifleştirin

📌 Geliştirici sekmesinin gösterimi için detaylı bilgi için tıklayın.

VBA - Geliştirici sekmesi
⚙️ Adım 1: Geliştirici sekmesini aktifleştirme
2 Visual Basic Düzenleyici'yi Açın

📌 Alt + F11 kısayolu ile hızlıca açabilirsiniz.

Visual Basic Düzenleyici'yi Açma
📝 Visual Basic Düzenleyici'yi Açma
3 Modül Ekleyin

Makro kodlarınızı yazabilmeniz için öncelikle bir modül eklemeniz gerekmektedir. Modüller, VBA kodlarınızı sakladığınız ve çalıştırdığınız alanlardır.

📌 Makro yazımı ile ilgili daha detaylı bilgi için tıklayın.

VBA - Modül ekleme
📝 Adım 3: Modül ekleme

03 Temel Kullanım

VBA'da TOPLAÇARPIM kullanmak için Application.WorksheetFunction.SumProduct metodunu kullanırsınız.

Sub ToplaCarpimTemel()
    Dim aralik1 As Range
    Dim aralik2 As Range
    Dim sonuc As Double

    ' Aralıkları belirleyin
    Set aralik1 = Range("A1:A5")
    Set aralik2 = Range("B1:B5")

    ' ToplaÇarpım fonksiyonunu kullan
    sonuc = Application.WorksheetFunction.SumProduct(aralik1, aralik2)

    ' Sonucu göster
    MsgBox "TOPLAÇARPIM sonucu: " & sonuc
End Sub

Örnek: A1:A5'teki değerler (2,4,6,8,10) ve B1:B5'teki değerler (1,2,3,4,5) için sonuç: 2*1 + 4*2 + 6*3 + 8*4 + 10*5 = 110

Uyarı

Aralıklar aynı boyutta olmalıdır. Farklı boyutlar hata verir. VBA makro hataları hakkında daha fazla bilgi edinin.

Application.WorksheetFunction.SumProduct(aralik1, aralik2)

📋 Temel TOPLAÇARPIM

📋 TOPLAÇARPIM temel kullanım

04 Koşullu TOPLAÇARPIM

TOPLAÇARPIM'ın en güçlü yanlarından biri, koşullu hesaplama yapabilmesidir.

Sub KosulluToplaCarpim()
    Dim aralik As Range
    Dim degerler As Range
    Dim sonuc As Double

    Set aralik = Range("A1:A10")
    Set degerler = Range("B1:B10")

    ' Sadece "İstanbul" olan satırları çarp ve topla
    sonuc = Application.WorksheetFunction.SumProduct((aralik = "İstanbul") * (degerler))

    MsgBox "İstanbul için toplam: " & sonuc
End Sub

Nasıl çalışır?

  • (aralik = "İstanbul") → DOĞRU/YANLIŞ (1/0) değerleri üretir
  • Bu değerler degerler aralığı ile çarpılır
  • Sonuç toplanır → Sadece "İstanbul" olan satırların toplamı

İpucu

Boolean ifadeleri çarpmak, ÇOKEĞER'den daha esnek bir alternatiftir. Birden fazla koşulu kolayca birleştirebilirsiniz. Excel ETOPLA ile karşılaştırabilirsiniz.

SumProduct((aralik = "İstanbul") * (degerler))

📋 Koşullu TOPLAÇARPIM

📋 Koşullu TOPLAÇARPIM örneği

05 Ağırlıklı Ortalama Hesaplama

Ağırlıklı ortalama, her değerin belirli bir ağırlıkla çarpılıp toplam ağırlığa bölünmesiyle hesaplanır. TOPLAÇARPIM bu işlem için idealdir.

Sub AgirlikliOrtalama()
    Dim degerler As Range
    Dim agirliklar As Range
    Dim toplam As Double
    Dim agirlikToplam As Double
    Dim sonuc As Double

    Set degerler = Range("A1:A5")
    Set agirliklar = Range("B1:B5")

    ' Ağırlıklı toplam
    toplam = Application.WorksheetFunction.SumProduct(degerler, agirliklar)

    ' Toplam ağırlık
    agirlikToplam = Application.WorksheetFunction.Sum(agirliklar)

    ' Ağırlıklı ortalama
    sonuc = toplam / agirlikToplam

    MsgBox "Ağırlıklı Ortalama: " & sonuc
End Sub

Uyarı

Toplam ağırlık sıfırdan büyük olmalıdır. Aksi takdirde bölme hatası alırsınız. Excel ağırlıklı ortalama hesaplama hakkında daha fazla bilgi edinin.

toplam = SumProduct(degerler, agirliklar)

sonuc = toplam / agirlikToplam

📋 Ağırlıklı ortalama

📋 Ağırlıklı ortalama hesaplama

06 Çoklu Aralık Kullanımı

TOPLAÇARPIM, ikiden fazla aralıkla da çalışabilir.

Sub CokluAralik()
    Dim aralik1 As Range
    Dim aralik2 As Range
    Dim aralik3 As Range
    Dim sonuc As Double

    Set aralik1 = Range("A1:A5")
    Set aralik2 = Range("B1:B5")
    Set aralik3 = Range("C1:C5")

    ' Üç aralığı çarp ve topla
    sonuc = Application.WorksheetFunction.SumProduct(aralik1, aralik2, aralik3)

    MsgBox "Çoklu aralık sonucu: " & sonuc
End Sub

İpucu

Tüm aralıklar aynı boyutta olmalıdır. Farklı boyutlarda kullanırsanız hata alırsınız. Excel VBA döngüler ile birlikte kullanabilirsiniz.

SumProduct(aralik1, aralik2, aralik3)

📋 Çoklu aralık

📋 Çoklu aralık kullanımı

07 Profesyonel İpuçları

Zaman Tasarrufu İpuçları

  • TOPLAÇARPIM'ı dinamik aralıklarla kullanarak veri eklendiğinde otomatik güncellenmesini sağlayın
  • Koşulları değişken olarak tanımlayarak esnek kod yazın
  • Büyük veri setlerinde hız için TOPLAÇARPIM'ı tercih edin

macOS Kullanıcıları İçin

  • ⌘ + C / ⌘ + V → Kopyala / Yapıştır
  • Option + F11 → VBA Düzenleyici
  • F5 → Makroyu çalıştır

Sık Yapılan Hatalar

  • Aralık boyutları eşleşmiyor: Tüm aralıklar aynı boyutta olmalı
  • Metin içeren hücreler: Sayısal olmayan değerler hata verir
  • Makro güvenlik ayarları: Makroları etkinleştirin

TOPLAÇARPIM vs ÇOKEĞER

  • TOPLAÇARPIM: Boolean ifadelerle çalışabilir, daha esnek
  • ÇOKEĞER: Sadece toplama işlemi yapar, kriter sözdizimi daha katı
  • TOPLAÇARPIM: Birden fazla aralıkla çarpım yapabilir
  • ÇOKEĞER: Sadece tek bir aralıkta toplama yapar

📌 Hızlı İpuçları

Option + F11

F5

📋 Mac ve Windows kısayolları
Sıkça Sorulan Sorular
08 Sıkça Sorulan Sorular

Excel VBA TOPLAÇARPIM işlemleri hakkında en çok merak edilen sorular ve cevapları.

01 Excel VBA ile TOPLAÇARPIM nasıl kullanılır?

Excel VBA ile TOPLAÇARPIM kullanmak için Application.WorksheetFunction.SumProduct(aralik1, aralik2) kodunu kullanabilirsiniz. Bu fonksiyon, iki aralıktaki değerleri çarpar ve toplar. Excel VBA fonksiyonlar hakkında daha fazla bilgi edinin.

02 Excel VBA'da TOPLAÇARPIM ile koşullu hesaplama nasıl yapılır?

Koşullu hesaplama için aralıkları Boolean ifadelerle çarparak kullanabilirsiniz. Örneğin: Application.WorksheetFunction.SumProduct((A1:A10="İstanbul") * (B1:B10)) gibi. Excel ETOPLA ile karşılaştırabilirsiniz.

03 Excel VBA'da TOPLAÇARPIM ile ağırlıklı ortalama nasıl hesaplanır?

Ağırlıklı ortalama hesaplamak için TOPLAÇARPIM ile ağırlıkları ve değerleri çarpıp, toplam ağırlığa bölebilirsiniz. Örnek: =SumProduct(değerler, ağırlıklar) / Sum(ağırlıklar). Excel ağırlıklı ortalama hakkında daha fazla bilgi edinin.

04 Mac'te Excel VBA'da TOPLAÇARPIM çalışır mı?

Evet, Mac'te Excel VBA'da TOPLAÇARPIM (SUMPRODUCT) fonksiyonu Windows ile aynı şekilde çalışır. Application.WorksheetFunction.SumProduct aynen kullanılabilir.

05 Excel VBA'da TOPLAÇARPIM ile birden fazla aralık nasıl kullanılır?

Application.WorksheetFunction.SumProduct(aralik1, aralik2, aralik3, ...) şeklinde birden fazla aralık kullanabilirsiniz. Tüm aralıklar aynı boyutta olmalıdır. Excel VBA döngüler ile birlikte kullanabilirsiniz.

06 Excel VBA'da TOPLAÇARPIM kullanırken hata alıyorum, ne yapmalıyım?

En sık karşılaşılan hatalar: 1) Aralık boyutları eşleşmiyor → Tüm aralıklar aynı boyutta olmalı. 2) Metin içeren hücreler → Sayısal olmayan değerler hata verir. 3) Makro güvenlik ayarları → Makroları etkinleştirin. VBA makro hataları hakkında daha fazla bilgi edinin.

💡 İpucu: VBA makrolarını çalıştırmadan önce dosyanızı yedeklemeyi unutmayın. Ctrl+S ile kaydedin.
Blog & Makaleler

İlginizi Çekebilecek Makaleler

Excel VBA, makrolar ve formüller hakkında daha fazla bilgi edinin.

Büyütülmüş görsel
🤖 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ı