Google sheets 将矩阵中的列求和为数组

Google sheets 将矩阵中的列求和为数组,google-sheets,google-sheets-formula,array-formulas,Google Sheets,Google Sheets Formula,Array Formulas,我需要一个从矩阵中获取值、对列求和并返回数组(行)的公式 SUM()对矩阵和数组求和时似乎只返回一个值,我的公式需要返回一个数组。它还需要安装在单个单元中。为了让您了解我在寻找什么,如果我只使用两个数组,我的代码如下所示: =ARRAYFORMULA(A1:A10+B1:B10) 但是,我需要按元素对未定义数量的数组求和,而不是以单个值结束。多列求和的公式如下: =ARRAYFORMULA(SUMIF(IF(COLUMN(A1:Z1), ROW(A1:A1000)), ROW(A1:A1000

我需要一个从矩阵中获取值、对列求和并返回数组(行)的公式

SUM()
对矩阵和数组求和时似乎只返回一个值,我的公式需要返回一个数组。它还需要安装在单个单元中。为了让您了解我在寻找什么,如果我只使用两个数组,我的代码如下所示:

=ARRAYFORMULA(A1:A10+B1:B10)

但是,我需要按元素对未定义数量的数组求和,而不是以单个值结束。

多列求和的公式如下:

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

如果最后一列是动态的,则需要这样做:

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

单元格D2

=ARRAYFORMULA(IF(LEN(INDIRECT("A2:A"&COUNTA(A2:A)+1)); 
 SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(F2:I16&":");;999^99)); " "; ""); ))
=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))
=ARRAYFORMULA(JOIN(":"; MMULT(
 TRANSPOSE(INDIRECT("E19:"&ADDRESS(21; COLUMN()-2; 4))); 
 TRANSPOSE(SPLIT(REPT(10; COUNTA(E19:E)); 1))^0)))&":"
单元格E19

=ARRAYFORMULA(IF(LEN(INDIRECT("A2:A"&COUNTA(A2:A)+1)); 
 SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(F2:I16&":");;999^99)); " "; ""); ))
=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))
=ARRAYFORMULA(JOIN(":"; MMULT(
 TRANSPOSE(INDIRECT("E19:"&ADDRESS(21; COLUMN()-2; 4))); 
 TRANSPOSE(SPLIT(REPT(10; COUNTA(E19:E)); 1))^0)))&":"
单元格J20

=ARRAYFORMULA(IF(LEN(INDIRECT("A2:A"&COUNTA(A2:A)+1)); 
 SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(F2:I16&":");;999^99)); " "; ""); ))
=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))
=ARRAYFORMULA(JOIN(":"; MMULT(
 TRANSPOSE(INDIRECT("E19:"&ADDRESS(21; COLUMN()-2; 4))); 
 TRANSPOSE(SPLIT(REPT(10; COUNTA(E19:E)); 1))^0)))&":"

注意:
COLUMN()-2
表示总和位于表末尾的两列中,即“未定义的数组数量”您是指“许多列”?或者你的意思是你不知道最后一列是什么?我基本上不能对每一列单独使用“+”,因为我不知道矩阵将包含多少列@Player0是否有一种方法可以使用不与特定单元格绑定的矩阵来执行此操作?例如,split()函数中的多个数组形成一个矩阵。(示例矩阵:split(filter(C:C;B:B=A1);“:”;1;0),其中B:B中的所有单元格都是以“:”分隔的数字,如1:2:3:4:5)我的主工作表很乱,但我设置了另一个工作表,它与我所要的工作表非常相似: