Tüm Versiyonu Göster : Aşağı ve sağa doğru büyüyen bir dizide toplam alma
Bu kısım farklı örnekler ile soru sorulup üyelerimizin deneyerek ,aktif olarak katılarak ve cevaplar vererek öğrenmesi amacıyla açılmıştı. Uzun zamandan beri kullanılmadığını gözlemlediğim için bir soru sorarak bu kısmı aktif hale getirmek istedim.
Çözümler, Fonksiyonla, Makro ve Kullanıcı Tanımlı Fonksiyonlar ile olabilir.
Yanlış yada eksikte olsa cevap verirseniz sevinirim böylece birlikte doğrusunu bulabiliriz.
Fonksiyon ve kullanıcı tanımlı fonksiyonlarda I2 hücresine yazılan formül aşağı doğru çekildikçe otomatik olarak hesaplamalıdır.
Yardımcı sütun kullanılmamalıdır.
ben makrolu bir çözüm buldum,
Sub fdl()
Dim a, i, k As Long
Range("J2:J65000").ClearContents
For i = 2 To Range("A65536").End(xlUp).Row
a = 1
For k = i To 2 Step -1
Cells(i, "j") = Cells(i, "j") + Cells(k, a)
a = a + 1
Next
Next
End Sub
kolay görünüyor ama baya kafa yoruyor iyi bir beyin fırtınası teşekkürler.
Hocam kullanıcı tanımlı fonksiyonunuda yaptım,
Function yatay_topla(birim As Integer)
a = 1
For k = birim To 2 Step -1
yatay_topla = yatay_topla + Cells(k, a)
a = a + 1
Next
End Function
formulüde k3 hücresi için,
=yatay_topla(SATIR(A2))
mesudiye_052
20-07-2009, 14:45
Selamlar;
basit formülle yapmaya çalıştım
dizi formül oluşturarak yapılırsa çok güzel olur
Saygılar;
Sayın fedeal çözümleriniz için teşekkürler.
Selamlar;
basit formülle yapmaya çalıştım
dizi formül oluşturarak yapılırsa çok güzel olur
Saygılar;
Sayın mesudiye_052, ekleyen olmazsa yazarım.
Sorunun fonksiyonla yapılışı farkettimki makroyla yapmak kadar basit değil
=DOLAYLI("A"&SATIR())+EĞER(EHATALIYSA(DOLAYLI("b"&SATIR()-1));0;DOLAYLI("b"&SATIR()-1))+EĞER(EHATALIYSA(DOLAYLI("c"&SATIR()-2));0;DOLAYLI("c"&SATIR()-2))+EĞER(EHATALIYSA(DOLAYLI("d"&SATIR()-3));0;DOLAYLI("d"&SATIR()-3)+EĞER(EHATALIYSA(DOLAYLI("e"&SATIR()-4));0;DOLAYLI("e"&SATIR()-4))+EĞER(EHATALIYSA(DOLAYLI("f"&SATIR()-5));0;DOLAYLI("f"&SATIR()-5))+EĞER(EHATALIYSA(DOLAYLI("g"&SATIR()-6));0;DOLAYLI("6"&SATIR()-6)))
gibi bir yöntem buldum ama işlevsel değil,soru 5 değilde 10 basamak olursa çuvallıyor.Cevabı ilgiyle bekliyorum.Saygılar.
Kullanıcı tanımlı bir fonksiyon ile
Function Koseleri_Topla(Bakılacak_alan As Range, Artıs As Integer) As Double
Dim arr As Variant, i As Integer, j As Integer, Topla As Double
arr = Bakılacak_alan
Topla = 0
For i = 1 To Artıs
Topla = Topla + arr(i, Artıs - i + 1)
Next i
Koseleri_Topla = Topla
End Function
=Koseleri_Topla($A$2:$E$6;SATIRSAY($I$2:I2))
yazılıp aşağı doğru çekilir.
Dizi formülü ile çözüm
=TOPLA(ALTTOPLAM(9;KAYDIR(A2;(-1*(SATIR(DOLAYLI("1:"&SATIR()))-1));SATIR(DOLAYLI("1:"&SATIR()))-1)))
yazılıp CTRL+SHIFT+ENTER tuşlarına birlikte basılıp aşağı doğru çekilir.
Dizi formülü ile çözüm
=TOPLA(ALTTOPLAM(9;KAYDIR(A2;(-1*(SATIR(DOLAYLI("1:"&SATIR()))-1));SATIR(DOLAYLI("1:"&SATIR()))-1)))
yazılıp CTRL+SHIFT+ENTER tuşlarına birlikte basılıp aşağı doğru çekilir.
.
Ali bey, bu da, sizin formülün dizi olmayan şekli:
=SUMPRODUCT(SUBTOTAL(9;OFFSET(A2;(-1*(ROW(INDIRECT("1:"&ROW()))-1));ROW(INDIRECT("1:"&ROW()))-1)))
=TOPLA.ÇARPIM(ALTTOPLAM(9;KAYDIR(A2;(-1*(SATIR(DOLAYLI("1:"&SATIR()))-1));SATIR(DOLAYLI("1:"&SATIR()))-1)))
.
vBulletin v3.7.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.