Сумма массива в электронной таблице Google

Как вы arrayformula() a sum(), например:

=sum(A1:H1)

Мне нужно спуститься на 1000 строк.

Ответ 1

Другая опция:

=ArrayFormula(SUMIF(IF(COLUMN(A1:H1),ROW(A1:A1000)),ROW(A1:A1000),A1:H1000))

Ответ 2

Это то, что вы ищете:

=MMULT(A1:H1000,TRANSPOSE(ARRAYFORMULA(COLUMN(A1:H1000)^0)))

См. этот ответ в веб-приложении, которое я дал: https://webapps.stackexchange.com/a/53419/29140

Примечание. Пробовал его в новой Таблице Google без успешных действий.

Ответ 3

Из двух ответов, которые работают, Якова Яна Туинстра и Адама, Джейкоб дает лучший ответ. Джейкоб работает быстрее и легче запомнить.

Однако зачем использовать сумасшедшие формулы, когда гораздо проще использовать Google Таблицы в полной мере?

=ARRAYFORMULA(A2:A+B2:B+C2:C+D2:D+E2:E+F2:F+G2:G+H2:H) 

В приведенной выше формуле вы можете использовать именованные диапазоны вместо диапазонов по ссылке.

=ARRAYFORMULA(range1+range2+range3+range4+range5+range6+range7+range8) 

Кроме того, вы можете суммировать строки, которые охватывают листы, а не застревают, работая с столбцами на одном листе.

Чтобы исправить формулу для блокирования возвращающих нулей для пустых строк, используйте следующую команду:

=arrayFormula(if(isNumber(A2:A),A2:A+B2:B+C2:C+D2:D+E2:E+F2:F,G2:G,H2:H))

Смотрите: См. ответ Ахаба в форумах Google

Формула накопления прохладной суммы см. в Ответ Отавио Алвеса Рибейро в форумах Google

Ответ 4

Если вы хотите повторить сумму на всех строках ниже, вы можете использовать arrayformula(A:A+H:H)
Если вы хотите суммировать все, то вам не нужна формула массива, просто используйте sum(A:A;H:H)

Ответ 5

Если я посмотрю на эту формулу, я действительно думаю, что следующее может быть проще. Добавьте это в Инструменты > Script Редактор:

function row_sum(range_to_sum_per_row) {
  var result_column = [];
  for (var r = 0; r < range_to_sum_per_row.length; r++) {
    var row_sum = parseFloat(0);
    for (var c = 0; c < range_to_sum_per_row[r].length; c++) {
        row_sum += range_to_sum_per_row[r][c] || 0;
    }
    result_column.push([row_sum]);
  }
  return result_column;
}

используйте это, например, по соображениям производительности, где C: H - диапазон, который вы хотите суммировать, и A: A - столбец, который не содержит пустую строку:

=row_sum(filter(C2:H, len(A2:A)>0))

Ответ 6

Не будем усложнять это. Просто скопируйте скобки в каждом из массива в диапазоне.

=arrayformula( Sum( (A1:A):(H1:H) )

Это охватывает не только до 1000 строк, но и до бесконечности.

Если вы действительно хотите ограничить, перейдите

=arrayformula( Sum( (A1:A1000):(H1:H1000) )

Ответ 7

Подведение A-H горизонтальным и бегущим вниз для 523 строк:

=ARRAYFORMULA(iferror(mmult(A1:H523;TRANSPOSE(column(A1:H1))^0)))