• DİKKAT

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

Büyük boyutlu matris çarpımı

Katılım
1 Mart 2012
Mesajlar
27
Excel Vers. ve Dili
2010 - EN
Merhaba,

Elimde 1125x122'lik, 0 ve 1'lerden oluşan bir matris var, bunu transpozuyla çarpmam gerekiyor (122x122'lik bir matris elde edeceğim). Ancak boyuttan dolayı MMULT fonksiyonu çalışmıyor.

Bana temel olarak gereken bu 122 sütunun 2'li kombinasyonlarını alması ve bu 2 sütunda da 1 değeri bulunduran satırları sayması. SUMPRODUCT kullandığımda, örneğin 1. sütunla 2. sütunu çarpıp toplarsam istediğime ulaşıyorum.

örn: =SUMPRODUCT(A1:A1125;B1:B1125)

Satırları sabitleyip sağa doğru çektiğimde 1x2, 1x3, ..., 1x122'yi de elde edebiliyorum, burada da sorun yok. Ancak 2x1, 2x2, 2x3 vs. için referansları kendim güncellemem gerekiyor. Bunun için de SUMPRODUCT içinde OFFSET kullanayım dedim, orada da çözemediğim bir sorunla karşılaştım.

=SUMPRODUCT(OFFSET(A1;0;0;1125,1);OFFSET(A1;0;0;1125;1))

yazdığımda ilk sütunu kendisiyle çarpıp sonucu veriyor. Ancak bu iki OFFSET'teki sütun değerini de COLUMN() ve ROW() fonksiyonlarıyla çekmeye çalıştığımda aynı fonksiyon - atıyorum 122 yerine - 0 değeri döndürmeye başlıyor.

=SUMPRODUCT(OFFSET(A1;0;COLUMN()-1;1125,1);OFFSET(A1;0;ROW()-1;1125;1))

Bu fonksiyon çalışsa sürükleyerek tüm hücreleri doldurabileceğim ama olmuyor.

VBA'i son çare olarak düşünüyorum, matris sürekli güncellenebildiğinden ve buna bağlı çok sayıda hücre olduğundan başka bir yazılıma aktarıp çarpıp geri taşımak da çok uğraştırıcı olacak benim için. O yüzden fonksiyonlarla halledebilirsem daha iyi olacak.

Uğraşan, kafa yoran herkese şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba,

Sorunuzu okudum fakat hangi hücreleri birbirleri ile çarpmak istediğinizi tam olarak anlayamadım.

Verdiğiniz formülü sayfaya uyarladım. Anladığım kadarıyla düzenledim. Aşağıdaki şekilde deneyiniz.

Kod:
=SUMPRODUCT(OFFSET(A1;0;COLUMNS(A1:A1)-1;1125,1);OFFSET(A1;0;ROWS(A1:A1)-1;1125;1))
 
Geri
Üst