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

最初の 2 列は「名」と「姓」です。「Lb」、「HW」、「Pa」は各ラボのカテゴリです。ここで、「x」、「y」、「z」はそれぞれカテゴリの平均です。「全体」「xyz」は、カテゴリの平均の加重合計です。(x, y, & z) それらは必ずしも同じ重みではありません。すなわち。「全体」の「xyz」については、25%、25%、50%、または合計が 100% になる任意の組み合わせになります。

カテゴリの平均を計算するには、たとえば「ab cd」という名前の場合、12、78、および 23 を平均して「x」を取得する必要があります。「y」の場合は 34、90、および 45。等

x の数式を手動で設定するには、次のようにします=AVERAGE(D2,G2,J2)。しかし、私が直面している問題は、Apps Scriptを使用して実行しようとしているのですが、範囲は個別ではなく連続的にしか選択できないということです。(私が間違っているかもしれません。)

また、「ラボ」は多かれ少なかれあり得ることに注意してください。もう 1 つの側面は、カテゴリが示されている 3 つより多い場合も少ない場合もあるということです。

ここに私の質問があります:スプレッドシートごとに個別に異なる「ラボ」とカテゴリを使用して、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 に答える