web-dev-qa-db-fra.com

Retard dans la mise à jour des cellules référencées lors de l'utilisation de IMPORTRANGE

J'utilise la fonction IMPORTRANGE de Google Sheets pour référencer les données de spreadsheet1 et les afficher sous spreadsheet2. Cela fonctionne bien, mais si je modifie spreadsheet1 puis que je passe à spreadsheet2, il n'est pas mis à jour automatiquement, pas plus si je rafraîchit la page. J'ai réglé mon cache pour qu'il soit limité à 0 Mo, il ne devrait donc rien enregistrer localement.

Des idées sur la façon dont je peux le faire pour vérifier plus souvent dans la feuille de calcul principale et mettre à jour ses valeurs en conséquence?

4
sam

Réponse courte

Au lieu d'utiliser IMPORTRANGE, utilisez script Google Apps

Explication

Selon changez les paramètres régionaux, le fuseau horaire, le nouveau calcul et la langue d'une feuille de calcul , l'intervalle de recalcul de IMPORTRANGE est de 30 minutes. Si un intervalle de recalcul plus court est nécessaire, les paramètres de la formule doivent être modifiés.

Malheureusement, il n'est pas possible d'utiliser les fonctions NOW, Rand ou RANDBETWEEN dans les nouvelles feuilles de calcul. L'alternative consiste donc à utiliser un script Google Apps.

Explication sur l'utilisation de fonctions non déterministes

Dans le fil de discussion fourni dans le commentaire de Jacob Jan Tuinstra, il est mentionné l'utilisation d'un paramètre d'URL supplémentaire mis à jour à certains intervalles. Ce fil est de 2011.

L'idée de base était d'ajouter à l'URL quelque chose comme "&workaround="&NOW() et de définir le paramètre de recalcul sur on change and every minute, mais cela pourrait être trop fréquent car la tâche d'importation pouvait prendre plus d'une minute, donc au lieu de NOW() vous devriez l'arrondir à un intervalle suffisant, disons 10 minutes, puis au lieu de NOW(), utilisez

INT(NOW()/TIME(0;10;0))

Laissez nommer cette formule time_interval.

La formule de cellule contenant IMPORTRANGE ressemblera à ceci

=IMPORTRANGE(
  "https://docs.google.com/spreadsheets/d/spredsheet_key&workaround="&time_interval,
  "Sheet1!A1:AB"
 )

Malheureusement, la formule ci-dessus renvoie l'erreur suivante

Erreur
Cette fonction n'est pas autorisée à référencer une cellule avec NOW (), Rand () ou RANDBETWEEN ().

La même chose se produit avec les autres fonctions d'importation (IMPORTDATA, IMPORTHTML, IMPORTFEED, IMPORTXML)

Références

1
Rubén