Soy nuevo en java y secuencias de comandos en Hojas de cálculo de Google y esta es mi primera pregunta aquí, por lo que se agradecen los consejos de etiqueta.
He estado aprendiendo mucho de este sitio, pero he estado atascado en este simple error durante semanas y finalmente solo tengo que preguntar ya que no puedo encontrar una solución en ninguna parte.
EDITAR para ser más claro
Tengo una hoja con precios en la columna "U" con fórmulas en las columnas "V" y "W" que cambian según el valor en "U". Creé un botón y adjunté un script que me gustaría que agregara el valor de cada celda en V al valor en W de la misma fila, para una iteración cada vez que selecciono el botón, y devolví los nuevos valores en el misma celda de la columna W.
Probé muchas variaciones de secuencias de comandos que arrojaron resultados diferentes, pero ninguna solo agregaba estas dos columnas juntas. A continuación se muestra lo que he parcheado que casi hace exactamente lo que necesito, pero necesita un ajuste en alguna parte y no puedo resolverlo.
function testPlus10(){ var colV = SpreadsheetApp.getActiveSheet().getRange("V2:V100").getValue(); var cell = SpreadsheetApp.getActiveSheet().getRange("W2:W100"); var cellValues = cell.getValues().map(function(row) {return [row[0] + colV]}); cell.setValues(cellValues); }En lugar de agregar el valor en (Del ejemplo anterior) V2 a W2, V3 a W3, y así sucesivamente en la columna, solo agrega el valor de V2 a cada celda en W. Lo que significa que del ejemplo: mi script actual devuelve valores de V2+W2 en W2, V2+W3 en W3, V2+W4 en W4, en lugar de V2+W2 en W2, V3+W3 en W3, V4+W4 en W4, ect... Agrega $1 a cada celda en W.
Esperemos que esto tenga más sentido.
Suponiendo que este sea el comportamiento esperado, puede usar este código, que es bastante simple y se puede usar para varias columnas de su elección.
function sumColumns(){ var spreadsheet = SpreadsheetApp.getActive(); var currentRow = spreadsheet.getDataRange().getLastRow(); //Get the last row with value on your sheet data as a whole to only scan rows with values for(var x =2; x<=currentRow; x++){ //Loop starts at row 2 if(spreadsheet.getRange("V"+x).getValue() == ""){ //Checks if V (row# or x) value is null Logger.log("Cell V"+x+" is empty"); //Logs the result for review } else{ var res = spreadsheet.getRange("V"+x).getValue() + spreadsheet.getRange("W"+x).getValue(); //SUM of V & W values spreadsheet.getRange("W"+x).setValue(res); //Replace W value with "res" } } }