- Katılım
- 2 Temmuz 2009
- Mesajlar
- 51
- Excel Vers. ve Dili
- 2007 Türkçe
- Altın Üyelik Bitiş Tarihi
- 01-01-2021
Çok teşekkür ederim...-- Makro ile çözüm önerisine ilave:
Sanıyorum verdiğim son cevaptaki formülü, konu sayfasında 10 numaralı cevap ekindeki örnek belgeye göre;
M, N ve O sütunundaki değerler (X, Y, Z) için T sütununa uygulayabilirsiniz ya da
o belgede yer alan makroda For Each hcr In b.Range("A2:A" & sonsat).SpecialCells(xlCellTypeVisible) şeklindeki döngü içerisinde,
yer alan b.Cells(sat, "O") = b.Cells(hcr.Row, "C") satırından sonra b.Cells(sat, "T") = b.Cells(hcr.Row, "D") şeklinde bir satır ekleyerek olayı orada da bitirebilirsiniz.
-- Verdiğim formülde kullanılan TOPLA.ÇARPIM işlevini inceleyiniz, araştırınız.
Kısaca özetleyeyim.
Herbir koşul için, şu sütunda şuna, bu sütunda buna eşit olanlar (eşit olanlar için 1, olmayanlar için 0 değeri dönecektir)
tüm koşullar gerçekleştiğinde bulunan 1'lerın ÇARPIMI olan 1 ile formülün en sonundaki hedef alandaki değeri ÇARPTIĞINIZI düşünün.
İlk veri satırı için koşulların tümünün 1 olduğu satır 12'nci satır oluyor bu satırdaki işlem de 1 x 1 x 1 x 11,3723 = 11,3723 oluyor.
İlk veri için koşullardan en az bir tanesi 0 ise (12'nci satır dışındaki satırlar) sonuç sıfır dönüyor ve bununla da ilgili satırlardaki hedef değerin çarpımı da 0 oluyor.
Son çarpım sonuçlarının toplamı da istenilen değerdir.
Bu ÇARPIM değerlerini (ÇARPIM sonuçlarını) , formül uygulanan hücre seçiliyken,
formül çubuğunun solundaki f(x) düğmesine tıkladığınzda açılacak olan küçük ekranda görebilir ve olayı daha iyi anlayabilirsiniz.
Örneğin formüldeki son kısmı *($D$3:$D$23) yerine *(SATIR($D$3:$D$23)) olarak yazsaydık sonuç 12 (satır no) olacaktı.
İyi çalışmalar dilerim.
.