Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
Onchange AppScript - Crear historial de cambios para una columna específica

Tengo una hoja que se actualiza a través de ImportRange. Hay una columna en esa hoja que representa el desempeño del cliente. Puede tener un rendimiento inferior o inferior según un conjunto de datos que existe en nuestro CRM.

Nombre del cliente Estado de rendimiento
Cliente1 ejecutando
Cliente2 bajo rendimiento

Estos estados cambian a lo largo de la semana. Estoy tratando de ejecutar un script que registra todos estos cambios por cliente e, idealmente, me notifica cuando el estado cambia a bajo rendimiento.

  1. Como es ImportRange, he estado usando el disparador onChange.
  2. Para almacenar y recuperar los valores antiguos, estoy usando PropertiesService
  3. No he descubierto cómo comparar estos dos conjuntos de datos para activar una notificación.

Esto es lo que tengo hasta ahora:

  1. Función de disparo:
 function performance(e) { Logger.log (e.changeType); // if (e.changeType =="OTHER") return; let props = PropertiesService.getScriptProperties().getProperties(); const sh = SpreadsheetApp.getActive(); const ss = sh.getSheetByName("sheetname"); for (let p in props) { let r = ss.getRange(p); let val = r.getValue(); // if(val != props[p]){ // r.offset(1,0).setValue(props[p]); Logger.log(PropertiesService.getScriptProperties().setProperty("data",ss.getRange("A7:N").getValues())); // } }

En cuanto a set_properties, devuelve este formato . No estoy seguro de cómo acceder a esos valores y cómo compararlos con los valores anteriores.

 function set_properties(){ const sh = SpreadsheetApp.getActive(); const ss = sh.getSheetByName("sheetname"); var range = ss.getRange("A7:N"); var values = range.getValues(); // This logs the spreadsheet in CSV format with a trailing comma for (var i = 0; i < values.length; i++) { var row = ""; for (var j = 0; j < values[i].length; j++) { if (values[i][j]) { row = row + values[i][j]; } row = row + ","; } Logger.log(row); } PropertiesService.getScriptProperties().setProperty('data',row); }
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda