在动态工作表中平均不包括同一列中的平均单元格的列?

时间:2015-11-20 19:35:19

标签: google-apps-script google-sheets

我有一张工作表,它通过一个importrange和一个下拉列表从另一个工作表中提取一组动态行。我需要在同一列的第一个空单元格中放置一个平均值,这个平均值包括从第5行开始的上面一列中的所有数字(不包括包含平均值本身的单元格,因为这会产生循环引用错误)。但行数总是会改变。

我对谷歌脚本相当舒服,但仍然是新手,并且理想情况下希望基于列索引.setFormula Lastrow+1,但我似乎无法获得AVERAGE公式计算除包含平均公式的单元格以外的整个列。

1 个答案:

答案 0 :(得分:1)

此脚本可以为您提供帮助,这适用于一个列,但我认为如果需要,它可以帮助您将其更改为适用于多个列:

function onEdit(e) {
  //check if first row is changed
  if (e.range.getRow()==1) {
    var s = SpreadsheetApp.getActiveSheet();
    //remove all data because filter does not want to overwrite existing values
    s.getRange("A2:B").clear();
    //put back the filter function
    s.getRange("A5").setFormula("=FILTER(Sheet2!A1:B, Sheet2!A1:A = A1)");
    //get number of rows
    var lastrow = s.getLastRow();
    //add the average function below
    s.getRange("B"+(lastrow+1)).setFormula("=AVERAGE(B2:B"+(lastrow)+")");
 }
}