【问题标题】:How to I calculate the sum of the last 7 rows, for each row, inside an ArrayFormula?如何计算 ArrayFormula 内每行最后 7 行的总和?
【发布时间】:2020-01-22 21:25:50
【问题描述】:

我有一个带有数值的 D 列,在相邻的列上,我想显示最后 7 行相对于当前行的总和。

我尝试了几个变体,其中大多数都受到 StackOverflow 和其他网站的启发,但它们并没有按照我的需要工作。

我认为由于 Offset() 创建了一个范围,因此只需“切片”我需要的范围并将其提供给 sum() 会很简单

ArrayFormula( Sum(Offset(D7:D500,-6,1,7,1)) )

但是,它似乎只计算我放置这个公式的单元格。

我根据自己的情况调整了我在网上找到的潜在解决方案

ArrayFormula(SUMIF(ROW(D7:D500),"<="&ROW(D7:D500),D7:D500))

这个计算前面所有行的总和, 所以我认为使用 SUMIFS() 可以得到我需要的东西,因此

=ArrayFormula(SUMIFS(D7:D500, ROW(D7:D500),"<="&ROW(D7:D500), ROW(D7:D500),">"&ROW(D7:D500)-7))

但是这个是行不通的。 我也尝试使用 Address() 和 Interpret() 创建范围,但似乎它们在 ArrayFormula() 中无法正常工作

我对它还很陌生,所以可能只是我没有正确使用它们。我在这里做错了什么?有没有更好的方法来做到这一点?如果可能的话,我宁愿使用 ArrayFormula(),因为公式将存在于单个单元格中。

【问题讨论】:

  • 您能根据您的目的显示示例图片吗?你能解释一下,如果第 3 行中的数组公式,你只会对第 3、4、5、6、7、8、9 行求和吗?
  • 还是比在 row7 = sum (row1:Row7), row14 = sum(row8:row14) 等等?
  • 您能分享一份您的电子表格副本,以便我们处理一些数据吗?

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


【解决方案1】:

您可以通过在 Google Apps 脚本中创建的 custom function 来完成此操作。为此,请按以下步骤操作:

  • 在您的电子表格中,选择工具 > 脚本编辑器以打开绑定到您的文件的脚本。
  • 在脚本编辑器中复制此函数,并保存项目:
function SUM7ROWS(input) {
  var output = [];
  var sum;
  for (var row = 0; row < input.length; row++) {
    sum = 0;
    for (var i = 6; i >= 0; i--) {
      if (row - i >= 0) {
        sum = sum + Number(input[row - i]);
      }
    }
    output.push(sum);
  }
  return output;
}
  • 现在,如果您返回到电子表格,您可以像使用任何其他功能一样使用此功能。您只需提供适当的范围作为参数(在本例中为D7:D500),如下所示:

希望对你有帮助。

【讨论】:

  • 谢谢!这正是我所需要的。我还稍微更改了函数,所以现在它可以获取要作为参数求和的行数。
【解决方案2】:

方法1.OFFSET函数

COUNT(D7:D500)-7 告诉 EXCEL 从D7 降级多少个单元格。

=SUM(OFFSET(D7:D500,COUNT(D7:D500)-7,,7,1))

没有Ctrl+Shift+Enter

方法2.Index函数

如果你担心OFFSET函数的易失性,你可以试试

=SUM(INDEX(D7:D500,COUNT(D7:D500)-6):INDEX(D7:D500,COUNT(D7:D500)))

没有Ctrl+Shift+Enter

【讨论】:

    【解决方案3】:

    尝试:

    =SUM(IFERROR(QUERY(D7:D500, "limit 7 offset "&COUNTA(D7:D500)-7)))
    

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2022-12-15
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多