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

252
Views
Google App Script: abra Google Sheet, espere a que se procesen todas las fórmulas, cierre la hoja

El problema

Google Data Studio no obtiene datos nuevos de Google Sheet porque Google Sheet no está abierto y las fórmulas no se ejecutarán para actualizar los datos.

Mi configuración: Formulario de Google > Hoja de cálculo de Google > Estudio de datos de Google

  1. Estoy usando un formulario de Google para agregar datos a una hoja de cálculo de Google.
  2. Google Sheet contiene fórmulas para modificar los datos del formulario de Google.
  3. Google Data Studio obtiene datos de Google Sheet cada 15 minutos.

Nota

Normalmente, al abrir la Hoja de cálculo de Google, se tarda alrededor de 5 minutos en terminar de ejecutar todas las fórmulas. (es un archivo muy grande, con muchas fórmulas)

Mi solución: ¿Es esta la mejor opción?

Disparador configurado para funcionar cada 10 minutos.

 function wakupSheet(){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); Utilities.sleep(100000); }

SOLUCIÓN ACTUALIZADA

Según la respuesta de Rubén "El script no hará que se vuelvan a calcular las fórmulas ya que no está haciendo ningún cambio en la hoja de cálculo".

¿Qué pasaría si tuviera que crear un bucle que cambie la fecha en una celda 10 veces con un minuto de suspensión (totalizando 10 minutos de la hoja activa actualizando la fecha y dando a la hoja 10 minutos para ejecutar todas las fórmulas necesarias)?

 function wakeupSheet() { for (i=0; i<10; r++) { changeDate(); Utilities.sleep(60000); } } function changeDate() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); var date = Utilities.formatDate(new Date(), "GMT-7", "MMMM dd, yyyy' @ 'HH:mm:ss"); var endDate = date sheet.getRange(4, 1).setValue("The data was last refreshed on: " + endDate); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La secuencia de comandos no hará que se vuelvan a calcular las fórmulas, ya que no está haciendo ningún cambio en la hoja de cálculo, por otro lado, y lo que es más importante, es que se utilizan los resultados de las fórmulas de una hoja de cálculo que tarda más de unos segundos en volver a calcularse como fuente de datos para Google Data. Studio o cualquier otra herramienta similar generalmente es una muy mala idea porque no ofrecen una forma de controlar cuánto tiempo se espera para que finalice el recálculo y Google Sheets no incluye una forma de asegurarse de que no haya un recálculo en progreso o si el último recálculo ha terminado, aparte de sondear un "testigo" (una celda que sabe que cambiará al final de cada recálculo).

Teniendo en cuenta lo anterior, es muy probable que su "mejor" opción sea transferir el trabajo realizado por las fórmulas al script en lugar de usar algo como Utilities.sleep(100000)

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!