Microsoft 365 DATEDIF

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Payne

XLDnaute Nouveau
Bonjour à tous

Je veux trouver la différence entre deux dates en année, mois et jour. J'ai trouver sur le site de Microsoft un exemple qui, selon eux, me donne une réponse dans une cellule, supposément comme il l'indique en années, mois et jour comme suit ex: 2 ans, 3 mois, 6 jours.

La formule pour la cellule qu'ils donnent est
=DATEDIF(B2;C2;"a")&" Années,"
&DATEDIF(B2;C2;"am")&" Mois,"
&C2-DATE(ANNEE(C2);MOIS(C2);1)&" Jours"

La réponse que je reçois est #VALEUR. J'ai trois colonnes, une avec la date de début dans B, date de fin dans C et la colonne D dans laquelle je veux avoir la réponse. J'ai vérifier la formule que j'ai écrit avec celle que Microsoft donnait en exemple. J'ai joint une capture d'image de l'exemple de Microsoft.

Merci,
 

Pièces jointes

  • Exemple DateDif.jpg
    Exemple DateDif.jpg
    32 KB · Affichages: 18
Solution
Bonjour @Payne

Remarque
Quand tu poses une question avec un exemple soit cohérent et assure toi que ce que tu écris est correct



Regarde la pièce jointe 1219968



Tu trouves que c'est le même résultat, si oui tu as un problème de vue !!! 😉

Et pour l'explication :
Année en anglais ce dit Year donc il faut mettre Y pour les années
Mois en anglais ce dit Month donc il faut mettre M pour les mois
Jour en anglais ce dit Day donc il faut mettre D pour les jours

Au choix en minuscule ou en majuscule

Pourquoi il y a une erreur cela vient peut être de la traduction que Microsoft ou un traducteur à fait.

Sur ce site de Microsoft il n'y a pas d'erreur
==>...
Bonjour @Payne

Remarque
Quand tu poses une question avec un exemple soit cohérent et assure toi que ce que tu écris est correct

Je veux trouver la différence entre deux dates en année, mois et jour. J'ai trouver sur le site de Microsoft un exemple qui, selon eux, me donne une réponse dans une cellule, supposément comme il l'indique en années, mois et jour comme suit ex: 2 ans, 3 mois, 6 jours.

1751418697767.png


J'ai vérifier la formule que j'ai écrit avec celle que Microsoft donnait en exemple. J'ai joint une capture d'image de l'exemple de Microsoft.

Tu trouves que c'est le même résultat, si oui tu as un problème de vue !!! 😉

Et pour l'explication :
Année en anglais ce dit Year donc il faut mettre Y pour les années
Mois en anglais ce dit Month donc il faut mettre M pour les mois
Jour en anglais ce dit Day donc il faut mettre D pour les jours

Au choix en minuscule ou en majuscule

Pourquoi il y a une erreur cela vient peut être de la traduction que Microsoft ou un traducteur à fait.

Sur ce site de Microsoft il n'y a pas d'erreur
==> https://support.microsoft.com/fr-fr/office/fonction-datedif-25dba1a4-2812-480b-84dd-8b32a451b35c

Merci de ton retour
 

Pièces jointes

Bonjour @Payne

Remarque
Quand tu poses une question avec un exemple soit cohérent et assure toi que ce que tu écris est correct



Regarde la pièce jointe 1219968



Tu trouves que c'est le même résultat, si oui tu as un problème de vue !!! 😉

Et pour l'explication :
Année en anglais ce dit Year donc il faut mettre Y pour les années
Mois en anglais ce dit Month donc il faut mettre M pour les mois
Jour en anglais ce dit Day donc il faut mettre D pour les jours

Au choix en minuscule ou en majuscule

Pourquoi il y a une erreur cela vient peut être de la traduction que Microsoft ou un traducteur à fait.

Sur ce site de Microsoft il n'y a pas d'erreur
==> https://support.microsoft.com/fr-fr/office/fonction-datedif-25dba1a4-2812-480b-84dd-8b32a451b35c

Merci de ton retour
Bonjour,
d'ailleurs cette formule existe depuis "belle-lurette". Je ne comprends toujours pas pourquoi Microsoft ne l'affiche pas dans ses propositions de Formules. Elle est documentée. Oui faut-il encore savoir qu'elle existe. Difficile de le savoir quand elle n'est pas proposée. En revanche le Net fait les choses à sa place... mais encore ? Certes, certainement à ses débuts elle était masquée pour des raisons de version Beta mais je suppose qu'elle est définitive... ou ça n'est pas encore le cas...
 
Bonjour,

cette formule existe depuis "belle-lurette". Je ne comprends toujours pas pourquoi Microsoft ne l'affiche pas dans ses propositions de Formules.
Parce qu'elle serait bugguée, dit-on. 😉

Microsoft à dit:
Dans le cadre de certains scénarios, la fonction DATEDIF peut calculer des résultats incorrects.
Du coup Microsoft ne veut pas mettre cette fonction en avant.
 
Bonjour,


Parce qu'elle serait bugguée, dit-on. 😉


Du coup Microsoft ne veut pas mettre cette fonction en avant.
Re, Oui, en effet j'avais lu cela à une époque... mais.... depuis elle reste pour autant documentée et cachée. Serait-elle donc oubliée dans les correctifs des Labs chez Microsoft ? Au lieu de pondre des améliorations qui ne servent pas à grand chose ou de nous injecter de l'iA Copilot à tours de bras ils feraient mieux corriger leurs casseroles... J'attends par exemple un meilleur éditeur de requêtes sous PowerQuery que leur machin Basique 🙂
 
Non, il n'y a pas que ça. Ça dépend aussi des nombres de jours dans les mois particuliers impliqués dans les deux dates spécifiées. J'ai toujours trouvé ça absurde de calculer par des DATEDIF une durée exprimée ainsi. Il n'est jamais précisé dans ce genre de demande si on désire un résultat à caractère historico-administratif ou scientifico-médico-agricole. Si deux individus aillant vécu le même nombre de jours doivent afficher la même chose quelles que soient les dates, j'utilise cette fonction perso :
VB:
Function DuréeEnClair(ByVal DuRest As Double, Optional ByVal OPé As Long = -1) As String
   Dim U As Long, DuUnit As Double, NbUnit As Long, Trad As String, Compter As Boolean, K As Long
   For U = 1 To 6
      If DuRest = 0 Then Exit For
      If OPé > 0 And U > OPé Then Exit For
      DuUnit = Choose(U, 365.2425, 30.436875, 7, 1, 1 / 24, 1 / 1440)
      NbUnit = Int(DuRest / DuUnit)
      If NbUnit > 0 Then
         If OPé <= 0 Then Compter = True
         If Trad <> "" Then
            If DuréeEnClair <> "" Then
               DuréeEnClair = DuréeEnClair & ", " & Trad
            Else
               DuréeEnClair = Trad: End If
            End If
         Trad = NbUnit & " " & Choose(U, "an", "mois", "sem.", "jour", "heure", "min")
         If NbUnit * Choose(U, 1, 0, 0, 1, 1, 0) > 1 Then Trad = Trad & "s"
         DuRest = DuRest - DuUnit * NbUnit: End If
      If Compter Then K = K - 1: If K < OPé Then Exit For
      Next U
   If Trad <> "" Then
      If DuréeEnClair <> "" Then
         DuréeEnClair = DuréeEnClair & " et " & Trad
      Else
         DuréeEnClair = Trad: End If
      End If
   If OPé > 0 And DuréeEnClair = "" Then DuréeEnClair = "Moins d'1 " _
      & Choose(OPé, "an", "mois", "sem.", "jour", "heure", "min")
   End Function
 

Pièces jointes

Dernière édition:
Non, il n'y a pas que ça. Ça dépend aussi des nombres de jours dans les mois particuliers impliqués dans les deux dates spécifiées.
Bien sûr, mais vu que tu avais l'air de ne pas du tout comprendre pourquoi les résultats pouvaient être différents pour des durées identiques, je te donnais un début d'explication.

Si tu as compris pour l'année bissextile, alors tu dois également comprendre que c'est aussi valable selon les mois de ladite durée, vu que c'est le même raisonnement que pour les années bissextiles. 😉



Si deux individus aillant vécu le même nombre de jours doivent afficher la même chose quelles que soient les dates, j'utilise cette fonction perso
Pourquoi le devraient-ils ???
Ce serait absurde. N'est-il pas ? 🤔
 
Ma question était par rapport au problème du demandeur. Je voulais savoir pourquoi il souhaitait que les délais trouvées en années, mois et jours diffèrent selon les dates impliquées. Était-ce l'expression, plus facile à apprécier sous cette forme, d'une véritable durée entre deux dates ou quelque chose de soumis à des règles juridiques en fonction des dates impliquées.
 
Bonjour @Payne

Remarque
Quand tu poses une question avec un exemple soit cohérent et assure toi que ce que tu écris est correct



Regarde la pièce jointe 1219968



Tu trouves que c'est le même résultat, si oui tu as un problème de vue !!! 😉

Et pour l'explication :
Année en anglais ce dit Year donc il faut mettre Y pour les années
Mois en anglais ce dit Month donc il faut mettre M pour les mois
Jour en anglais ce dit Day donc il faut mettre D pour les jours

Au choix en minuscule ou en majuscule

Pourquoi il y a une erreur cela vient peut être de la traduction que Microsoft ou un traducteur à fait.

Sur ce site de Microsoft il n'y a pas d'erreur
==> https://support.microsoft.com/fr-fr/office/fonction-datedif-25dba1a4-2812-480b-84dd-8b32a451b35c

Merci de ton retour
Bonjour,

Merci Phil69970 pour votre explication, mais je crois que j'ai trouvé mon erreur stupide, j'essai de calculer des dates antérieures au 1er janvier 1900. Pourtant j'ai déjà fait une feuille Excel il y a quelques années sur le même genre de calcul, J'aurais dû m'en souvenir.
Merci encore de vos efforts pour l'explication.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
69
Réponses
6
Affichages
249
Réponses
3
Affichages
116
Retour