Накопительная сумма без скрипта

Для этого вопроса я создал функцию скрипта Google Apps, которая вычисляет совокупную сумму ассортимент. Мартин Хоксей в Google+ сделал комментарий о более эффективном способе вычисления суммарной суммы

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;
}

Мой вопрос: может ли это быть достигнуто с использованием формулы?

29 голосов | спросил Jacob Jan Tuinstra 11 Jam1000000amFri, 11 Jan 2013 01:06:13 +040013 2013, 01:06:13

2 ответа


25

Да:

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

Пример суммарной суммы

Цифры в зеленом круге - это те, которые суммируются, ArrayFormula заполняет все остальные на основе вложенной ячейки, в этом примере я вставил в A11, B1 и C1, чтобы показать его эффект.

Эта таблица , которую я сделал некоторое время назад, пытается объяснить как MMULT можно использовать для подобных проблем, а также демонстрирует решение SUMIF на одном из листов, которое может (и, вероятно, должно) использоваться для особых случаев, подобных тому, что было в этом вопросе.

ответил AdamL 30 J0000006Europe/Moscow 2013, 14:21:43
20

Предполагая, что вы хотите:

  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)

и т.д ...

Затем вы можете использовать: =sum($A$1:A1), где A1 - это начало чисел для суммирования. Поместите эту формулу в B1 (или где хотите) и заполните ее, и она будет суммировать все ячейки до и включать строку, в которой вы находитесь. В качестве альтернативы вы можете использовать =Ax+Bx-1 (x = текущая строка, данные в A, суммарная сумма в формате B) из вышеприведенной формулы «B».

ответил Farfromunique 4 J000000Thursday13 2013, 01:46:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132