使用if和multicriteria-Google Apps Script在范围(一列)中增加一个值



我试着在每一行上循环并检查U&基于以下标准的同一行的Y值的AA值和设置值:

J值为1如果AA值是:";TEST";则设置Y值(j+1(如果U值是:";33〃;则设置Y值(j+1(,则j=j+1如果AA值不是"0";TEST"&U值不是"0";33〃;则设置Y值(j(

这是我的代码

function RowNumbre() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Test');
var range = sheet.getRange("AA:AA200").getValues();
for (var i=2; i < range.length; i++) {
var j = 1;
var value = sheet.getRange("Y"+i);
var value2 = sheet.getRange("U"+i).getValue();
var value3 = sheet.getRange("AA"+i).getValue();
if(value2 === "33"){
value.setValue(j+1);
j= j+1;
}
else if(value3 === "TEST"){
value.setValue(j+1);
}
else {
value.setValue(j);
}
}
}

代码根本不起作用,看起来有一个巨大的滞后(目前,每2-3分钟向Y上的每个单元格添加一个"1",它不会停止

试试这个:

function RowNumbre() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Test');
const rg1=sh.getRange("Y1:Y200");
var vs1=rg1.getValues();
const rg2=sh.getRange("U1:U200");
var vs2=rg2.getValues();
const rg3=sh.getRange("AA1:AA200");
var vs3=rg3.getValues();
var sv=1;
vs1.forEach(function(v,i){if(vs2[i][0]==33){v[0]=sv++;}else if(vs3[i][0]=="TEST"){v[0]=sv+1;}else{v[0]=sv;}});
rg1.setValues(vs1);
}

最新更新