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

116
Vistas
Tiempo de espera de la secuencia de comandos de Google

He estado usando una macro en un Excel durante algunos años y quería traducirla en un script de Google para colaborar en Drive.

Estoy usando una configuración de dos hojas (una llamada "BILAN", que es la descripción general y otra llamada INPUT para ingresar datos. El script funciona bien mientras no hay demasiadas entradas, pero espero alcanzar cerca de mil entradas al final del uso del archivo.

Básicamente, el guión es un doble bucle para resumir las entradas en la hoja BILAN. Gracias de antemano por tu ayuda !!

Aquí está el código que estoy usando:

 function getTransportDates() { var ss = SpreadsheetApp.getActive(); var strDatesTransport = ''; const intNbClients = ss.getSheetByName('BILAN').getDataRange().getLastRow(); const intNbInputs = ss.getSheetByName('INPUT').getDataRange().getLastRow(); for (let i = 4; i <= intNbClients; i++) { // loop through the addresses in BILAN if (ss.getSheetByName('BILAN').getRange(i, 9).getValue() >0) { for (let j = 4; j <= intNbInputs; j++) { // loop through the adresses in INPUT if (ss.getSheetByName('INPUT').getRange(j, 2).getValue() == ss.getSheetByName('BILAN').getRange(i, 1).getValue()) { strDatesTransport = strDatesTransport + ' // ' + ss.getSheetByName('INPUT').getRange(j, 1).getValue(); //.toISOString().split('T')[0]; } } } ss.getSheetByName('BILAN').getRange(i, 10).setValue(strDatesTransport); strDatesTransport = ''; } };
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Reduzca la cantidad de llamadas para obtener información de Hojas de cálculo de Google

Cada vez que el intérprete llega a algo como esto:

 ss.getSheetByName('INPUT')

... tiene que ir a la Hoja de Google para ver si hay (actualmente) una hoja con ese nombre, y luego tiene que encontrar la celda relevante dentro de esa hoja. Aunque el script se ejecuta en un servidor de Google, acceder a una hoja de cálculo lleva más tiempo que acceder a una variable dentro del entorno Javascript local.

La forma más sencilla de reducir el número de llamadas es leer cada una de las hojas ("BILAN" e "INPUT") en una variable Javascript local.

De hecho, me parece que está extrayendo conjuntos de celdas extremadamente específicos de cada una de las hojas de cálculo. ¿Podría obtener cada conjunto de celdas en una matriz y luego procesar las matrices?

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pruébalo de esta manera:

 function getTransportDates() { const ss = SpreadsheetApp.getActive(); var sdt = ''; const csh = ss.getSheetByName('BILAN'); const cvs = csh.getRange(4, 1, csh.getLastRow() - 3, csh.getLastColumn()).getValues(); const ish = ss.getSheetByName('INPUT'); const ivs = ish.getRange(4, 1, ish.getLastRow() - 3, ish.getLastColumn()).getValues(); cvs.forEach((cr,i) => { if((cr[8] > 0)) { ivs.forEach((ir,j)=>{ if(ir[1] == cr[0]) { sdt += ir[0]; } }); } ss.getSheetByName('BILAN').getRange(i + 4, 10).setValue(sdt); sdt = ''; }); }

No sé a dónde va esto: //.toISOString().split('T')[0];

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