首页 > 解决方案 > 应用程序脚本:每次执行增加变量

问题描述

嗨,我有一个值列表,每个值代表包装转变的输出。我想计算8周的平均产量。因此,每次轮班通过时,平均输出都会发生变化。我的想法是在每次班次后触发一个函数,计算输出。现在我的问题是,如何在每次触发函数后增加一个变量(代表第一个值的行)?我尝试的是在函数之前声明变量并在函数内部增加 1 的变量。Buf ofc 的起始值不会以这种方式改变.. 可能有一个简单的方法,我只是还不知道(这里是编程新手 :))。

let i = 7;
let j = 126;

function schnitt() {
 

var summe = 0;
var counter = 0;
i++;
j++;

while(i <= j){
  var aktuell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(i,6,1,1).getValue();
  if(aktuell != ""){
    summe = summe + aktuell;
    counter++;
    i++;
  }
    else{
      i++
    }
}
  var durchschnitt  = summe / counter;
  var ausgabe = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(8,7,1,1).setValue(durchschnitt);
  
}

标签: variablesgoogle-apps-scriptglobal-variablesaverage

解决方案


我找到了解决办法。我只是将 var i 和 j 放入单元格中,然后这样做:

function schnitt() {
 
var i = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(3,14,1,1).getValue();
var j = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(4,14,1,1).getValue();
var summe = 0;
var counter = 0;


while(i <= j){
  var aktuell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(i,6,1,1).getValue();
  if(aktuell != ""){
    summe = summe + aktuell;
    counter++;
    i++;
  }
    else{
      i++
    }
}
  var durchschnitt  = summe / counter;
  var ausgabe = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(8,7,1,1).setValue(durchschnitt);

  i = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(3,14,1,1).getValue();
  i++;
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(3,14,1,1).setValue(i);
  
  j = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(4,14,1,1).getValue();
  j++;
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Auswertung").getRange(4,14,1,1).setValue(j);
}

推荐阅读