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

153
Vistas
¿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 Respuestas
Responde la pregunta

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 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