通过Apps脚本编写动态公式

时间:2013-07-26 10:49:29

标签: dynamic google-apps-script google-sheets formula

所以我基本上有这种类型的多个电子表格的设置:

    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S
  1            Lab1     Lab2     Lab3      Averages
  2 FN LN    Lb HW Pa Lb HW Pa Lb HW Pa    Lb HW Pa Overall
  3 ab cd    12 34 56 78 90 01 23 45 67     x  y  z   xyz
  4 ef gh    89 09 87 76 54 32 18 48 39     x  y  z   xyz
  5 ij kl    10 29 83 47 31 24 35 49 54     x  y  z   xyz
  6   Ave    Av Av Av Av Av Av Av Av Av    Av Av AV  AveTot

前两列是“First”和“Last”名称。 “Lb”,“HW”,& “Pa”只是每个实验室的类别。 “x”,“y”,& “z”分别是类别的平均值。 “整体”“xyz”是类别平均值的加权和。 (x,y,& z)它们的重量不一定相同。即。它们可能是“总体”中“xyz”的25%,25%,50%或任何组合总计高达100%。

现在计算类别的平均值,我需要,例如名称“ab cd”,平均值为12,78,& 23得到“x”。 34,90和& 45为“y”。等

现在手动为x设置公式,我可以这样做:=AVERAGE(D2,G2,J2)。 但是我遇到的问题,试图通过 Apps Script 来实现,只能连续选择范围而不是离散。 (我可能弄错了。)

另请注意,“实验室”可以或多或少。另一个方面是类别可以多于或少于显示的三个类别。

所以这是我的问题:如何在x,y和&的公式中编写脚本? z与“labs”&类别独立于电子表格到电子表格......?

1 个答案:

答案 0 :(得分:0)

我想这个例子可以帮到你:

function test() {
  var result = getCells("A3,C3");
  Logger.log(result);
}

function getCells(cellsStr) {
  var sheet = SpreadsheetApp.openByUrl("Spread Sheet URL")
  var cellsArray = [];
  var cells = cellsStr.split(",");
  for(var index in cells) {    
    var row = sheet.getRange(cells[index]).getValue();    
    cellsArray.push(row);
  }
  return cellsArray;
};