Суммирование столбцов в матрице в массив - PullRequest
1 голос
/ 15 мая 2019

Мне нужна формула, которая берет значения из матрицы, суммирует столбцы и возвращает массив (строки).

SUM(), кажется, только возвращает одно значение при суммировании матриц и массивов, и моя формула должна возвращать массив. Это также должно соответствовать внутри одной клетки. Чтобы вы поняли, что я ищу, если бы я использовал только два массива, мой код выглядел бы так:

=ARRAYFORMULA(A1:A10+B1:B10)

Однако мне нужно суммировать неопределенное количество массивов поэлементно, а не заканчивать одним значением.

1 Ответ

1 голос
/ 15 мая 2019

формул для суммы из нескольких столбцов:

=ARRAYFORMULA(SUMIF(IF(COLUMN(A1:Z1), ROW(A1:A1000)), ROW(A1:A1000), A1:Z1000))

=ARRAYFORMULA(MMULT(IFERROR(VALUE(A1:Z1000), 0), TRANSPOSE(COLUMN(A1:Z1000)^0)))

если последний столбец является динамическим, вам нужно будет сделать это следующим образом:

=ARRAYFORMULA(MMULT(IFERROR(VALUE(INDIRECT("A1:"&ADDRESS(1000, COLUMNS(A:AAA), 4))), 0), 
 TRANSPOSE(COLUMN(INDIRECT("A1:"&ADDRESS(1000, COLUMNS(A:AAA), 4)))^0)))

_______________________________________________________________

0

ячейка D2 :

=ARRAYFORMULA(IF(LEN(INDIRECT("A2:A"&COUNTA(A2:A)+1)); 
 SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(F2:I16&":");;999^99)); " "; ""); ))

ячейка E19 :

=ARRAY_CONSTRAIN(ARRAYFORMULA(SPLIT(FILTER(INDIRECT("D2:D"&COUNTA(A2:A)+1); 
 COUNTIF(B19:B; INDIRECT("A2:A"&COUNTA(A2:A)+1))); ":"; 1; 0)*C19:C); 
 COUNTA(B19:B); COUNTA(E18:18))

ячейка J20 :

=ARRAYFORMULA(JOIN(":"; MMULT(
 TRANSPOSE(INDIRECT("E19:"&ADDRESS(21; COLUMN()-2; 4))); 
 TRANSPOSE(SPLIT(REPT(10; COUNTA(E19:E)); 1))^0)))&":"

Примечание: COLUMN()-2 означает, что сумма находитсядве колонки от конца таблицы

...