Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda