运行 与 ARRAYFORMULA 求和
Running SUM with ARRAYFORMULA
我有一个每天的值列表,我希望每天使用数组公式对过去 7 天求和。
基本上,我想使用这个公式
=SUM(A1:A7) 在 ARRAYFORMULA 中,但我无法让它工作。
理论上它应该看起来像
ARRAYFORMULA(SUM(B1:B:B7:B)) 这当然行不通。
注意:公式必须在顶行,因为每天都会添加新数据,所以今天的第 2 行明天会变成第 3 行。为此的解决方案必须适合列的顶部单元格。
我创建了一个 sheet 示例。 Col A 是日期,Col B 是值 Col C 是7天的手动总和,仅供参考
https://docs.google.com/spreadsheets/d/1jsC5mN2Bdq5a1u2GjoufTTPmSjyurOPd1YXQEv_AGfk/edit#gid=0
我在单元格 D2 中输入了以下内容:
=flatten(
index(
query(
if(
(sequence(counta(B2:B))<sequence(1,counta(B2:B))+7)*
(sequence(counta(B2:B))>=sequence(1,counta(B2:B))),
B2:B,
),
"select sum(Col"&join("), sum(Col",sequence(counta(B2:B)))&")"),
2))
你也可以使用这个old-school方法:
=ArrayFormula(if(isnumber(B:B),sumif(row(B:B),"<"&row(B:B)+7,B:B)-sumif(row(B:B),"<"&row(B:B),B:B),))
或者最好包含一个 header:
=ArrayFormula(if(B:B="",,if(isnumber(B:B),sumif(row(B:B),"<"&row(B:B)+7,B:B)-sumif(row(B:B),"<"&row(B:B),B:B),"Running Total")))
我有一个每天的值列表,我希望每天使用数组公式对过去 7 天求和。 基本上,我想使用这个公式
=SUM(A1:A7) 在 ARRAYFORMULA 中,但我无法让它工作。
理论上它应该看起来像
ARRAYFORMULA(SUM(B1:B:B7:B)) 这当然行不通。
注意:公式必须在顶行,因为每天都会添加新数据,所以今天的第 2 行明天会变成第 3 行。为此的解决方案必须适合列的顶部单元格。
我创建了一个 sheet 示例。 Col A 是日期,Col B 是值 Col C 是7天的手动总和,仅供参考
https://docs.google.com/spreadsheets/d/1jsC5mN2Bdq5a1u2GjoufTTPmSjyurOPd1YXQEv_AGfk/edit#gid=0
我在单元格 D2 中输入了以下内容:
=flatten(
index(
query(
if(
(sequence(counta(B2:B))<sequence(1,counta(B2:B))+7)*
(sequence(counta(B2:B))>=sequence(1,counta(B2:B))),
B2:B,
),
"select sum(Col"&join("), sum(Col",sequence(counta(B2:B)))&")"),
2))
你也可以使用这个old-school方法:
=ArrayFormula(if(isnumber(B:B),sumif(row(B:B),"<"&row(B:B)+7,B:B)-sumif(row(B:B),"<"&row(B:B),B:B),))
或者最好包含一个 header:
=ArrayFormula(if(B:B="",,if(isnumber(B:B),sumif(row(B:B),"<"&row(B:B)+7,B:B)-sumif(row(B:B),"<"&row(B:B),B:B),"Running Total")))