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

352
Vistas
Google Script: copie la fila de una hoja a otra según el valor

Si bien he visto preguntas similares, no he visto esta específica si no me equivoco.

Entonces, necesito leer toda la información en una columna determinada (en este caso sería AF, independientemente de que no haya estado usando esa hoja de cálculo para probar lo que he estado haciendo) y luego verificar si una celda en esa columna tiene el valor ( o cadena, lo siento, nuevo en Google Script) "Finalizado", luego copie la fila completa que corresponde a esa celda en una hoja secundaria que almacenaría todos los casos terminados y demás.

He estado tratando de encontrar algo a través de Google, pero siempre es cómo copiar la hoja completa y creo que eso no es útil, también lo que he hecho es copiar las celdas independientemente del valor en esa celda + columna.

 function copyIf() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var source = ss.getSheetByName("Stuff"); var destination = ss.getSheetByName("Terminados"); var condition = source.getRange('D2:D2000').getValue(); if (condition == "Terminado") { source.getRange('A2').copyTo(destination.getRange('A2')); source.getRange('A3').copyTo(destination.getRange('A3')); } }

Estoy pensando que probablemente debería implementar algún tipo de ciclo for o while porque quiero que esto se ejecute constantemente, de modo que cada vez que alguien cambie el estado de una determinada celda a Terminado para copiar esa fila en la hoja secundaria.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Prueba esto

 function copyIf() { var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Stuff"); var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Terminados"); if (feuille.getLastRow()==1){ SpreadsheetApp.getActive().toast('No data!', 'End of script 🗃️') return } var data = feuille.getRange(2,1,feuille.getLastRow()-1,feuille.getLastColumn()).getValues() var archiveData = [] var lignes = [] var ligne = 1 var col = 31 // AF try { data.forEach(function (row) { if (row[col]=="Terminado") { archiveData.push(row) lignes.push(ligne) } }) archive.getRange(archive.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData) // lignes.reverse().forEach(x => feuille.deleteRow(x)); SpreadsheetApp.getActive().toast('Rows '+lignes.flat()+' hab been archived !', 'End of script 🗃️') } catch (e) { SpreadsheetApp.getActive().toast('No data to be archived!', 'End of script 🗃️') } }

Si desea eliminar filas después del proceso, elimine // antes lignes.reverse().forEach(x => feuille.deleteRow(x));

about 4 years ago · Juan Pablo Isaza Denunciar
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