Escribí un script para calcular el porcentaje entre:
Mi hoja tiene más de 2000 filas y el script se detiene alrededor de la fila 500 cuando la función se agota.
Estoy tratando de hacer que mi secuencia de comandos se ejecute más rápido si tal cosa existe (soy bastante nuevo en las secuencias de comandos de Java y me interesaría saber cómo optimizar mi secuencia de comandos).
El guión es:
function SimplePerc() { var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main_Sheet"); for (var i=sheet1.getLastRow()-1 ; i>1; i--) { var numerator = sheet1.getRange(i,2).getValue(); var denominator = sheet1.getRange(i+1,2).getValue(); var percentagecalc = (numerator /= denominator)-1; sheet1.getRange(i,3).setValue(percentagecalc); } }Algo como esto:
function SimplePerc() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Main_Sheet"); const vs = sh.getRange(2, 2, sh.getLastRow() - 1).getValues(); const rs = sh.getRange(2, 3, sh.getLastRow() - 1).clearContent().getValues(); vs.forEach((r, i, arr) => { if (i < vs.length - 1) { rs[i][0] = (r[0] / arr[i + 1][0]) - 1; } }) sh.getRange(2, 3, rs.length, 1).setValues(rs) }Probablemente esto no sea completamente correcto porque no deseo depurarlo.