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

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

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