【问题标题】:Arrayformula Running Total with multiple columnsArrayformula 多列运行总计
【发布时间】:2020-01-19 16:20:58
【问题描述】:

我有以下任务要解决,但我无法解决它。

不同年份有几个数字。我想在 J 列中计算所有列的总和(= 范围 C:I)。我可以在 J 的每个单元格中使用公式来做到这一点 - 但是我需要在 J2 中使用单个数组公式来实现它。

经过大量研究,我发现有两个步骤:

  1. 用 0 替换空单元格,因为数组公式显然对空单元格有一些问题
  2. 对每一行求和

对于第 1 步,公式是:=ARRAYFORMULA(IF(ISBLANK(C2:I15),0,C2:I15)),它会返回一个临时数组,例如:

由于这是一个 15x7 数组,我需要一个 7x1 数组之类的东西来乘以得到一个 15x1 数组。

该公式将是:=ARRAYFORMULA(TRANSPOSE(COLUMN(C1:I1)^0))

所以最后我的公式到目前为止看起来像:=ARRAYFORMULA(MMULT(IF(ISBLANK(C2:I15),0,C2:I15),TRANSPOSE(COLUMN(C1:I1)^0)))

这会产生一个 15x1 的数组,它给我每行的总和,但不是所有行的总运行总和。

这是我卡住的地方 - 非常感谢任何帮助和想法。

编辑:添加了一个共享版本供您使用:https://docs.google.com/spreadsheets/d/1cqNEsWHqBaHdDrMY8x4DUKpEkYprRZ8AibEe7d0knPY/edit?usp=sharing

【问题讨论】:

  • 因此您希望对 C:I 范围的每一列执行运行总计,然后将每一行汇总为一列 OR 您希望对范围 C 中的每一行求和:我然后执行运行总计以结束一列???
  • 我想达到 C:I 范围内的总和(见第一个屏幕截图)。所以每一行的运行总数应该增加。我添加了一个共享工作表。

标签: google-sheets google-sheets-formula array-formulas cumulative-sum


【解决方案1】:

我认为这也可以:

=ARRAYFORMULA(IF(B2:B="";;SUMIF(SEQUENCE(ROWS(C2:I);COLUMNS(C2:I));"<="&SEQUENCE(ROWS(C2:I);1;COLUMNS(C2:I);COLUMNS(C2:I));C2:I)))

【讨论】:

  • 对 sequence() 函数的天才使用。真是个好主意!
【解决方案2】:

尝试:

=ARRAYFORMULA(IF(B2:B="";;MMULT(TRANSPOSE((ROW(M2:M)<=TRANSPOSE(ROW(M2:M)))*
 MMULT(C2:I*1; ROW(A1:A7)^0)); SIGN(MMULT(C2:I*1; ROW(A1:A7)^0))^0)))

【讨论】:

  • 奖励:添加了操作某些行的选项(例如,将某些行乘以一个因子)
猜你喜欢
  • 2020-08-24
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 2022-12-15
  • 1970-01-01
相关资源
最近更新 更多