Formule avec Datediff n'actualise pas

Bonjour à tous,

Tout d'abord, sachez que lors de ma découverte de ce forum, j'ai ressenti un IMMENSE soulagement ! Pourquoi ? Parce que je travaille sur sheet depuis 1 an bientôt, j'ai créé un outil pour mes étudiants et j'ai dû me débrouiller seul pour y parvenir, ne sachant pas trop où aller chercher les infos ... Donc en allant chercher des points très précis, j'ai réussi à créer quelque chose d'assez satisfaisant, mais je reste très souvent confronté à mon manque de compétence dans ce domaine.

Et découvrir un tel forum ... c'est un soulagement pour moi ! C'est une véritable mine d'informations et de connaissances. Donc déjà, un grand merci à toutes les personnes expérimentées (ou non) qui donnent de leur temps pour aider la communauté. C'est tellement appréciable. Je tacherai de faire de même lorsqu'il me sera possible d'apporter des réponses.

Bon... désolé pour cette entrée en scène...

J'en viens à ma problématique. Voici le contexte :

  • Dans un document Google Sheet, j'ai deux onglets,
  • J'en ai une avec une requête (query) qui contient à l'intérieur cette formule : "SELECT C, E WHERE DATEDIFF(NOW(), C) <30 ")
  • Et une autre qui contient une formule qui va récupérer des informations dans un "importrange" (qui se nomme "Enregistrement heures"). Celle-ci récupère toutes les saisies faites dans un google form par différentes personnes

Voici le problème :

  • Toutes les saisies effectuées par une personne apparaissent bien dans le "importrange" qui se nomme "Enregistrement heures". Cependant,
  • Il arrive parfois, de façon plus ou moins aléatoires, que la requête (query) qui contient à l'intérieur cette formule : "SELECT C, E WHERE DATEDIFF(NOW(), C) <30 ") ne se mette pas à jour.
  • Par exemple, à ce jour, j'ai une bonne dizaines de saisies effectuées tout le long du mois d'avril. Ces saisies apparaissent bien dans la feuille qui contient le Importrange, mais elles n'apparaissent pas toujours dans la requête, alors qu'elles sont censées y apparaître constamment.
  • Avant dernier point : Parfois cela fonctionne sans aucun souci, c'est vraiment aléatoire. Et quand cela ne fonctionne pas, j'ai juste à supprimer la formule Importrange et la remettre. Cela actualise au passage la requête.
  • Dernier point : Je gère avec ces documents près de 80 personnes ... donc c'est un problème difficile à gérer manuellement à chaque fois.

Voilà, j'ai essayé de faire au plus clair. Je vous remercie d'avance de m'avoir lu. J'espère obtenir de l'aide ou des pistes ...

Belle journée,

François.

Bonjour François et bienvenue,

On va essayer de t'aider. Aurais-tu une copie simplifiée de ton fichier que tu pourrais partager ? https://www.sheets-pratique.com/fr/cours/partage

En effet, les forums francophones sur sheets ne sont pas légion !

Il y a quelque chose qui me surprend, c'est que pour moi la fonction DATEDIF prend 3 arguments, exemple ... =DATEDIF(now();C2;"d")

De plus je n'ai pas réussi à faire fonctionner un DATEDIF dans un QUERY. Il y a 2 solutions :

  • ajouter une colonne F par exemple avec les valeurs de DATEDIF et faire =query(C:F;"select C,E where F<30")
  • ou comparer directement avec la date du jour =query(C:E;"select C,E where C<=DATE'"&TEXT(now()+30;"yyyy-MM-dd")&"' ")

https://docs.google.com/spreadsheets/d/1BPQUsVq7dJ_zk4Bsyjc2RWL-SgrOfZ_7qP--cbl8q6Q/edit?usp=sharing

Bonjour un grand merci pour cette réponse rapide !

Pour répondre à ton premier message, voici le lien du fichier : https://docs.google.com/spreadsheets/d/1Zt7228Z6cHCyrlsA6l_zD8-a3vWfvkUKBxw47N0fH_c/edit?usp=sharing

Pour bien le comprendre :

  1. Le graphique pioche ses données dans l'onglet "J-30".
  2. "J-30" pioche ses données de "enregistrements élève"
  3. Le problème est qu'il arrive que J-30 ne se mette pas à jour. Il m'est parfois nécessaire d'intervenir manuellement

Merci beaucoup pour ce second message. Je continue à le lire et à bien saisir la fiche que tu m'as partagé, néanmoins ...

J'ai l'impression que la solution que tu me proposes ne s'applique pas vraiment à mon cas de figure.

Dans mon cas, les apprentis saisissent des entrainements. Et mon objectif est de faire ressortir dans un tableau toutes les saisies datant de moins de 30 jours. La solution que tu me proposes ne s'applique t-elle pas uniquement pour les dates à venir ? (genre ... des échéances ?)

Encore un grand merci pour le temps que tu m'accordes.

Merci, le fichier est lisible, mais comme on ne peut pas accéder au données de base d'un autre fichier j'ai copié et collé les valeurs dans l'onglet 'Enregistrement heures'

Je n'ai pas de soucis avec une formule de ce type qui actualise le résultat quand je change les données

=QUERY('Enregistrement heures'!C3:D;"SELECT C, D WHERE C<=DATE'"&TEXT(now()-30;"yyyy-MM-dd")&"' ")

Est-ce dû au lien externe ?

Je ne suis pas sûr d'avoir bien compris en effet la plage de dates que tu veux faire ressortir.

sur les 30 derniers jours ce sera

=QUERY('Enregistrement heures'!C3:D;"SELECT C, D WHERE C>=DATE'"&TEXT(now()-30;"yyyy-MM-dd")&"' and C<=DATE'"&TEXT(now();"yyyy-MM-dd")&"' ")

Mince, mes compétences sont limitées pour bien tout comprendre (d'ailleurs, je cherche à prendre des cours en développement mais c'est un autre sujet, je créerai un topic pour cela plus tard).

Je bute sur la compréhension de cette formule : C>=DATE'"&TEXT(now()-30;"yyyy-MM-dd")&

A quoi correspond DATE'"&TEXT ?

Et pourquoi y a t-il un "&" à la fin de la formule ?


J'ai testé, et pour le moment cela fonctionne. En quoi cela diffère avec ma formule : =QUERY('Enregistrement heures'!C3:E;"SELECT C, E WHERE DATEDIFF(NOW(), C) <30 ")

Est-ce que c'est en lien avec le lien extérieur ? Normalement non puisqu'il s'agit d'un simple google form qui contient un horodateur, une liste de nom et un nombre correspondant à 15, 30 ou 45 à sélectionner.

Mes lacunes dans le domaine ne me permettent pas de tout saisir du premier coup... merci pour votre patience.

Pour moi, cette formule ne colle pas ! DATEDIFF est chez moi une fonction inconnue. En excel comme en Googler Sheets, c'est DATEDIF

Cette fonction DATEDIF prend 3 arguments et tu n'en mets que 2 (, ou ; selon ta version)

=DATEDIF(depuis,jusque,"X")

avec X est égale Y, M, D, YM, YD, MD

https://support.google.com/docs/answer/6055612?hl=fr

Pour le query, je te renvoie ici https://www.sheets-pratique.com/fr/query/date-heure

Le & va concaténer une valeur calculée avec la phrase de "select ....", cette valeur c'est la date au format indiqué pour être conforme au topic ci-dessus avec une date figée, ou par exemple C <= DATE '2021-05-02' qui équivaut à C <= DATE '" & TEXT(now();"yyyy-MM-dd") & "'

Ah oui, je viens de comprendre ton message. Effectivement, mon "Datediff" a bien deux "f" 🤔🤔🤔

image

Je te remercie pour le partage du lien et les explications ! C'est bien clair désormais. Penses-tu que la nouvelle formule que tu m'as partagé règlera ce problème de mise à jour automatique ?

Encore merci ! Je vais noter le topic comme résolu. Si jamais je constate qu'il y a un souci de mise à jour, je le posterai dans le topic.

Bonjour, Mike & François

je m'excuse de m'immiscer dans ce fil, mais j'ai trouver ceci qui pourrait peut-être vous renseigner

https://www.sheets-pratique.com/fr/query/fonctions-scalaires

dans cette explication sur la fonction "QUERY" il est bien question de DATEDIFF avec 2 FF

20210502 161520 001

Merci Gilbert, c'est bon à savoir. Je ne connaissais pas cette façon d'écrire, donc François avait raison ? Mais il semble que cette fonction ne s'actualisait pas !

Je suis parfois dérouté car j'ai souvent des fonctions que je tape en français et qui sont traduites immédiatement en anglais par google. Toi qui a plus d'expériece que moi, j'aimerais comprendre si tu connaissais la règle. Maintenant, est-ce que cette subtilité FF ou F en fait partie ?

autres explications sur DateDiff et DateDif

https://infoinspired.com/google-docs/spreadsheet/datediff-function-in-google-sheets-query/

https://infoinspired.com/google-docs/spreadsheet/google-sheets-calculate-age-from-birthday/

Si tu veux garder tes fonctions en Anglais tu peux cocher la case dans les paramètres de la feuille

20210502 184806 001
Rechercher des sujets similaires à "formule datediff actualise pas"