0
我想對電子表格中的一系列值執行基本乘法,然後將這些值除以列中的一系列值,請注意,我的範圍是8列長,並且我的分割範圍是一列長。如何使用批量操作優化我的代碼?
我有這樣的代碼:
function multiply() {
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("1iXQxyL3URe1X1FgbZ76mEFAxLnxegyDzXOMF6WQ5Yqs"));
var sheet = doc.getSheetByName("json");
var sheet2 = doc.getSheetByName("tabla de frecuencias");
var sheet3 = doc.getSheetByName("Template");
var range = sheet2.getDataRange();
var numRows = range.getNumRows();
var numCols = range.getNumColumns()-1; //This will get the division values which are located in the last column
var targ = sheet2.getLastColumn();
for (var i = 2; i <= numRows; i++) {
for (var j = 2; j <= numCols; j++) {
var A = range.getCell(i,j).getValue();
var value = A;
for (var v = 1; v <= numRows; v++) {
var T = range.getCell(v,targ).getValue();
range.getCell(i,j).setValue(value*100/T);
}
}
}
}
這是非常慢的,它讀取並從片材,其中我有數值準備乘以100並通過位於單個的值除以寫在每個單元列,這個值對於每一行都是不同的。
我的腳本極其緩慢地完成了工作,批量操作似乎很有前途,如果這不是最佳解決方案,我將接受任何其他備用解決方案,而不考慮問題標題。
我已經試過你的腳本沒有成功,你就會說每一行的解釋,以幫助我理解? –
你可以分享你的電子表格嗎? – Cooper
我剛剛對第二個循環進行了更改,因此它不會訪問最後一列中的數據。 – Cooper