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

161
Views
¿Cómo puedo iterar sobre un rango no organizado y extraer datos hasta que ya no se cumplan los criterios usando Apps Script?

He estado tratando de recorrer un rango de datos y llevar los datos a otra hoja hasta que el ciclo llega a una de las siguientes palabras (Herramientas, Pintura) y se detiene allí.

Estaba buscando un bucle for + while, pero no estoy seguro de que esta sea la mejor manera de hacerlo.

Aquí está el borrador del código en el que estoy trabajando:

 function importPipeworkData() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const input4File = ss.getSheetByName('Input Files Mapping').getRange('B4').getValue() const pipeworkSheet = SpreadsheetApp.openByUrl(input4File).getSheetByName('Sheet1'); const inputPipeworkRng = pipeworkSheet.getRange(2, 1, pipeworkSheet.getLastRow(), 4); const inputPipeworkData = inputPipeworkRng.getValues(); const boqPipeworkSheet = ss.getSheetByName('BOQ Pipework'); const boqPipeworkRng = boqPipeworkSheet.getRange(4, 1, boqPipeworkSheet.getLastRow(), 4); //boqPipeworkRng.clear(); //Clears the sheet to receive updated data; const pipeworkData = []; for (let a = 0; a < inputPipeworkData.length; a++) { while (inputPipeworkData[a][0] != 'Valves') //This is one of the unclear parts Logger.log(inputPipeworkData[a][1]) } }

Este es un ejemplo del conjunto de datos: https://docs.google.com/spreadsheets/d/1W9zPt1nYKv59j9kjgFqy5Z4KPgvXZUoCusTk06kRQUk/edit?usp=sharing

Agradecería si se pudiera brindar alguna ayuda aquí.

Saludos, antonio

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En su situación, debe usar solo un bucle

De este modo,

  • en el caso de un bucle for , es necesaria una instrucción if adicional.
  • en caso de un ciclo while , debe asegurarse de incrementar su variable de contador.

Ejemplo con bucle for :

 const keyWords = ["Tools", "Painting"]; for (let a = 0; a < inputPipeworkData.length; a++) { if (keyWords.indexOf(inputPipeworkData[a][0]) > - 1){ break; } Logger.log(inputPipeworkData[a][1]); pipeworkData.push(inputPipeworkData[a]); } }

Ejemplo con ciclo while :

 const keyWords = ["Tools", "Painting"]; var a = 0; while (keyWords.indexOf(inputPipeworkData[a][0]) == - 1){ Logger.log(inputPipeworkData[a][1]); pipeworkData.push(inputPipeworkData[a]); a++ } }
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!