web-dev-qa-db-fra.com

Forcer la formule de feuille google à recalculer

J'ai une formule d'index/match qui correspond à un fichier spécifique basé sur la valeur de date de certaines cellules. Voici la formule:

=IFERROR(INDEX(INDIRECT("'"&TEXT($O$3,"mm-dd-yyyy")&"'!"&"$D3:$D$500"),MATCH($D5,INDIRECT("'" & TEXT($O$3, "mm-dd-yyyy") &"'!$B$3:$B500"),0)),0)

J'ai remarqué que les valeurs ne changeaient pas même lorsque j'avais importé un nouveau fichier CSV. La seule façon pour moi d'obtenir les valeurs à mettre à jour était essentiellement de ré-entrer dans la formule en faisant glisser de haut en bas la dernière cellule, comme on le ferait manuellement.

J'ai essayé de changer le temps de recalcul dans les paramètres, mais il semblait que le paramètre ne s'appliquait pas à ma formule, car je l'ai réglé à chaque minute et rien ne s'est passé. 

J'ai pensé écrire un script pour le ré-entrer dans les formules et le configurer pour qu'il s'exécute tous les jours, mais j'espère qu'il existe un moyen plus simple de le faire.

7
Sean W

Réponse courte

Votre formule n'est pas recalculée car ses arguments ne changent pas. Comme vous l'avez déjà constaté vous-même, la solution consiste à ressaisir les arguments appropriés dans les cellules auxquelles votre formule fait référence.

Explication

Les formules Google Sheets sont recalculées lorsque

  1. Le tableur est ouvert
  2. Les arguments de la fonction changent
  3. Les fonctions NOW, TODAY, Rand et RANDBETWEEN sont mises à jour en fonction des paramètres de la feuille de calcul, modification, modification et toutes les minutes, modifications et toutes les heures.
  4. Les fonctions de données externes recalculent aux intervalles suivants:
    • ImportRange: 30 minutes
    • ImportHtml, ImportFeed, ImportData, ImportXml: 1 heure
    • GoogleFinance: peut être retardé jusqu'à 20 minutes

Remarque: Certaines fonctions et fonctions personnalisées n'autorisent pas les fonctions déterministes comme arguments.

Références

13
Rubén

J'ai trouvé une solution facile à mon problème. J'ai écrit un script pour ré-entrer les dates appropriées dans les cellules auxquelles ma formule fait référence et les formules mises à jour. 

2
Sean W

Voici une autre solution, bien que coûteuse en calcul: passez la plage à prendre en compte dans le calcul à la fonction. Ainsi, chaque fois qu'une valeur change dans la plage passée ou que la plage elle-même change (par exemple, l'insertion d'une ligne dans la plage), la formule est recalculée.

0
Jesse Heines