Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

351
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!