将矩阵中的列求和到数组中
Summation of columns in matrix into an array
我需要一个公式,它从矩阵中获取值,对列求和,然后 return 是一个数组(行)。
SUM()
在对矩阵和数组求和时似乎只 return 一个值,而我的公式需要 return 一个数组。它还需要适合单个单元格。为了让您了解我在寻找什么,如果我只使用两个数组,我的代码将如下所示:
=ARRAYFORMULA(A1:A10+B1:B10)
但是,我需要按元素对未定义数量的数组求和,而不是以单个值结束。
multi-column 总和的公式为:
=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)))
_______________________________________________________________
单元格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
表示总和位于 table[ 末尾的两列=18=]
我需要一个公式,它从矩阵中获取值,对列求和,然后 return 是一个数组(行)。
SUM()
在对矩阵和数组求和时似乎只 return 一个值,而我的公式需要 return 一个数组。它还需要适合单个单元格。为了让您了解我在寻找什么,如果我只使用两个数组,我的代码将如下所示:
=ARRAYFORMULA(A1:A10+B1:B10)
但是,我需要按元素对未定义数量的数组求和,而不是以单个值结束。
multi-column 总和的公式为:
=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)))
_______________________________________________________________
单元格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
表示总和位于 table[ 末尾的两列=18=]