0

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

    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) 它们的权重不一定相同。IE。对于“总体”中的“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 的公式中编写脚本,其中“实验室”和类别独立地从电子表格到电子表格..?

4

1 回答 1

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;
};
于 2013-07-29T19:47:18.613 回答