Betiksiz Birikimli Toplam


35

İçin bu soruya, bir aralık kümülatif toplamını hesaplar Google Apps Kodu işlevini oluşturduk. Google + 'da Martin Hawksey kümülatif toplamı hesaplamanın daha etkili bir yolu hakkında yorum yaptı:

function cumulativeSum(array){
  var output = [];
  for (i in array){
    if(i==0) {
      if (array[i].length > 1) throw ("Only single column of data");
      output.push([array[i][0]]);
    } else {
      output.push([output[i-1][0] + array[i][0]]);
    }
  }
  return output;
}

Sorum şu: bu formül kullanımıyla başarabilir mi?


Çok geç cevap verdiğim için özür dilerim, sadece sağdaki "İlgili" yi konuştuğunu gördüm.
AdamL

Yanıtlar:


30

Evet:

=ArrayFormula(SUMIF(ROW(A1:A10);"<="&ROW(A1:A10);A1:A10))

Birikmeli Toplam Örneği

Yeşil dairedeki sayılar toplanır, ArrayFormula, içine yapıştırılan hücreye dayanarak diğerlerini doldurur, bu örnekte, etkisini göstermek için A11, B1 ve C1'e yapıştırdım.

Bir süre önce yaptığım bu elektronik tablo , MMULT'un bu tür sorunlar için nasıl kullanılabileceğini açıklamaya çalışır ve aynı zamanda özel durumlar için kullanılabilecek (ve olması gereken) sayfalardan birinde SUMIF çözümünü de gösterir. bu soruda.


Bu formülü bir kez aldım (sanırım senin olduğunu) Google Forum'da: SUMIF (ROW (A: A); "<" & ROW (A: A)), işe yaramadı. Bu var.
Jacob Jan Tuinstra


1
@Fogest, "Snagit" adında bir ürün kullandım, techsmith.com/download/snagit
Xavier Casto 15

@XavierCasto Oh, bunu çok uzun zaman önce kullandım, uzun zaman önceydi. Cevabınız için teşekkürler, ben teknisyen tarafından ürünleri severim.
ComputerLocus

31

İstediğini varsayarak:

  Row | A | B | B's formula
  --------------------------------
   1  | 1 | 1 | =1     (or =A1)
   2  | 2 | 3 | =1+2   (or =A2+B1)
   3  | 3 | 6 | =1+2+3 (or =A3+B2)

vb...

Sonra kullanabilirsiniz: =sum($A$1:A1)nereye A1Özetle sayıların başlangıcıdır. Bu formülü B1(veya istediğiniz yere yerleştirin) koyun ve doldurun; bulunduğunuz satır dahil tüm hücreleri toplayacaktır . Alternatif olarak, =Ax+Bx-1yukarıdaki "B formülü" bölümünden (x = geçerli satır, A'daki veriler, B'de kümülatif toplam) biçimini kullanabilirsiniz.


7
Bu iş gibi görünüyor ve kabul edilen cevaptan çok daha basit
K Raphael

1
kabul etti, bu daha basit ve sorunsuz çalışıyor!
loretoparisi

1

Kabul edilen cevap yerinde olsa da, son parametre parametresinin SUMIFher zaman "geçerli bir aralık" olması gerektiğinden büyük bir dezavantajı vardır, bu nedenle daha ileri düzeyde çalışan toplam hesaplama MMULTsöz konusu olduğunda daha iyi bir seçenektir:

=ARRAYFORMULA(IF(LEN(A1:A), 
 MMULT(TRANSPOSE((ROW(A1:A)<=TRANSPOSE(ROW(A1:A)))*A1:A), SIGN(A1:A)^2), ))

0

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.