Я хотел бы знать, если это на самом деле быстрее ...
- сделать расчет значения непосредственно в редакторе сценариев
ИЛИ
- запустить скрипт, который выводит формулы в ячейки.
У меня сейчас есть следующее:
function recheck_qty(itemname){
var itemcell = findcellbyvalue(itemname);
var itemcellrange = SpreadsheetApp.getActive().getSheetByName('Inventory').getRange(itemcell);
var row = itemcell.substring(1);
var sold = checkqty_sold1(itemname);
SpreadsheetApp.getActive().getSheetByName('Inventory').getRange("D"+row).setValue("=SUM(F"+row+":"+row+","+sold+")");
}
function checkqty_sold1(item) {
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
var sold = "";
var count = 0;
for(var s in allsheets){
var sheet = allsheets[s];
var sheetname = sheet.getName();
if(count>0){
sold += ","
}
if(sheetname!='Inventory'){
sold += 'IF(count(FILTER('+sheetname+'!F2:F,'+sheetname+'!B2:B="'+item+'"))<=0,0,-SUM(FILTER('+sheetname+'!F2:F,'+sheetname+'!B2:B="'+item+'")))';
count++;
}
} // end of loop
return sold;
}
Раньше я делал реальные вычисления для var sold и значение "SUM (F" + row + ":" + row ". Но я понимаю, что для заполнения данных в ячейке на самом деле требуется некоторое время. функции getrange (), getsheets (), которые я вызываю ... но я не уверен.
Переходя на текущую, я смог сделать ее немного быстрее, но только время от времени. не всегда работает так быстро. Тем не менее, требуется некоторое время для загрузки.