Aşağı ve sağa doğru büyüyen bir dizide toplam alma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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.
 

Ekli dosyalar

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
ben makrolu bir çözüm buldum,
Kod:
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.
 

Ekli dosyalar

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
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.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kullanıcı tanımlı bir fonksiyon ile

Kod:
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

Kod:
=Koseleri_Topla($A$2:$E$6;SATIRSAY($I$2:I2))
yazılıp aşağı doğru çekilir.
 

Ekli dosyalar

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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.
 

Ekli dosyalar

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
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)))


.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst