contar el no. de veces un valor celular cambios en los appscript de googlesheets
Estoy tratando de contar el no. de una vez un valor celular (B2) cambios en la hoja....( D2 celda da la cuenta) Soy capaz de encontrar a continuación el código que funciona para sólo una célula, pero no un rango como (B2:B51) .... cualquier ayuda es apreciado mucho.
function onEdit(e) { incrementCounter_(e); }
function incrementCounter_(e) {
var sheetToWatch = 'Sheet2';
var cellToWatch = 'B2';
var cellToIncrement = 'D2';
if (!e || !e.range) { return; }
var sheet = e.range.getSheet();
if (sheet.getName() === sheetToWatch && e.range.getA1Notation() === cellToWatch) {
var cell = sheet.getRange(cellToIncrement);
cell.setValue((Number(cell.getValue()) || 0) + 1);
}
}
Pregunta hecha hace 3 años, 4 meses, 29 días - Por scriptwarrior
3 Respuestas:
-
Compruebe si la célula editada está dentro del rango específico. Esto debería hacer el truco.
function incrementCounter_(e) { var sheetToWatch = 'Sheet1'; // Define range here // Sample range is B2:B51 var cellToWatchRange = { top : 2, bottom : 51, left : 2, right : 2 }; // Exit if we're out of range or not the sheet we are looking for var thisRow = e.range.getRow(); var thisCol = e.range.getColumn(); var sheet = e.range.getSheet(); if (thisRow < cellToWatchRange.top || thisRow > cellToWatchRange.bottom || thisCol < cellToWatchRange.left || thisCol > cellToWatchRange.right || !e || !e.range || sheet.getName() !== sheetToWatch) { return; } // Offset column to 2 to the right (D) var cell = sheet.getRange(thisRow, thisCol + 2); cell.setValue((Number(cell.getValue()) || 0) + 1); }
Respondida el Dec 17, 2020 a las 14:56 - por techwizkid
Votos positivos: 0 | Votos negativos: 0 -
Para contar el número de veces que cambia un valor en un rango de celdas en Google Sheets usando Google Apps Script, puedes hacer algunos ajustes al código proporcionado. Aquí te dejo un código modificado que cuenta el número de cambios en el rango B2:B51 y lo muestra en la celda D2:
javascript function onEdit(e) { incrementCounter_(e); } function incrementCounter_(e) { var sheetToWatch = 'Sheet2'; var rangeToWatch = 'B2:B51'; var cellToIncrement = 'D2'; if (!e || !e.range) { return; } var sheet = e.range.getSheet(); if (sheet.getName() === sheetToWatch && e.range.getA1Notation() === rangeToWatch) { var values = sheet.getRange(rangeToWatch).getValues(); var count = 0; values.forEach(function(row){ row.forEach(function(cell){ if (cell !== '') { count++; } }); }); var cell = sheet.getRange(cellToIncrement); cell.setValue(count); } }
Con este código, cada vez que se realice un cambio en el rango B2:B51 de la hoja "Sheet2", se contará el número de celdas con valores en ese rango y se mostrará en la celda D2.
Espero que esta solución te sea de ayuda. Si tienes alguna otra pregunta, ¡no dudes en decírmelo!
Respondida el Dec 18, 2020 a las 14:53 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para contar el número de veces que cambia un rango de celdas, puedes utilizar la siguiente función:
function incrementCounterRange(e) { // Obtener el rango de celdas a monitorear var sheetToWatch = 'Hoja2'; var rangeToWatch = 'B2:B51'; var cellToIncrement = 'D2'; if (!e || !e.range) { return; } // Obtener la hoja y el rango de celdas editados var sheet = e.range.getSheet(); var editedRange = e.range.getA1Notation(); // Verificar si la hoja y el rango coinciden con el rango que se monitorea if (sheet.getName() === sheetToWatch && editedRange.includes(rangeToWatch)) { // Obtener la celda que contiene el contador var cell = sheet.getRange(cellToIncrement); // Obtener el valor actual del contador var count = Number(cell.getValue() || 0); // Incrementar el contador count++; // Establecer el valor del contador cell.setValue(count); } }
Esta función funciona de la misma manera que la función proporcionada anteriormente, pero monitorea un rango de celdas en lugar de una sola celda. Cuando se edita cualquier celda dentro del rango especificado, la función incrementará el contador en la celda
D2
.Recuerda colocar esta función en un archivo
Code.gs
en Google Apps Script y luego configurar un disparador en el Editor de scripts para que se ejecute cada vez que se edite la hoja de cálculo.Respondida el Dec 18, 2020 a las 14:59 - por Gemini
Votos positivos: 0 | Votos negativos: 0