Estoy tratando de establecer una nueva columna calculada en función de los valores de otras dos columnas. La condición es: cada vez que inserto nuevos datos en las columnas C y D, la columna E debe calcularse como "=C/D".
Esto sería el equivalente a esto en pandas:
df['new']= df['C']/df['D']pero no sé si JS es compatible con esta función de no iteración que ofrece Pandas
Intenté esto pero no pasa nada:
function sample(){ var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); var range=sheet.getRange('E2:E20000') for (i=0; i<range.length; i++){ if (i==''){ i.setFormula(`=${C[i]/D[i]}`); } else { pass } } }Puede setFormula sobre toda la columna de esta manera:
var range=sheet.getRange('E2:E20000') range.setFormula("C2/D2")Esto es similar a configurar el formato condicional. La parte superior izquierda del rango es todo lo que importa. Todo lo demás es relativo. Mira mi respuesta aquí .
Prueba esto:
function sample() { const ss = SpreadsheetApp.getActive() const sh = ss.getSheetByName('Sheet2'); const sr = 2; const rg = sh.getRange(2,1,sh.getLastRow() - sr + 1,5); const vs = rg.getValues(); let cold =vs.map((r,i) => { r[4] = `${"=C" + Number(i + sr) + "/D" + Number(i + sr)}`; return [r[4]]; }); sh.getRange(sr,5,cold.length,cold[0].length).setFormulas(cold).setNumberFormat("#,##0.00"); }