Problème calcul durée entre plusieurs dates

Guygablau Messages postés 30 Statut Membre -  
brucine Messages postés 25018 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans un tableau, je mets des dates que je transforme en nombre de jours :

Date début Date de fin Nb de jours</gras>
01/01/2010 15/12/2014 1809 (formule appliquée : =DATEDIF(A7; B7; "d"))
01/05/2015 12/05/2017 742

Ce qui me donne un total de jours de présence : 2551.

Je souhaite convertir cette donnée en année mois jour. J'ai donc appliqué la formule :
=ENT(F7/365) & " an(s) " & ENT(MOD(F7;365)/30) & " mois " & MOD(F7;365)-(ENT(MOD(F7;365)/30)*30) & " jour(s)"
Mais le résultat me donne 6 an(s) 12 mois 1 jour(s), alors que je souhaiterais avoir 7 an(s) 0 mois 1 jour(s)

Merci pour votre aide

3 réponses

  1. crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   54
     
    Attention, une année est composée de mois de 28, 30 et 31 jours
    Excel, sans date de référence, ne peut pas faire autrement que de compter 30 jours par mois !
    Dans ton résultat espéré, si tu fais 7X365, tu obtiens 2555, donc déjà plus que tes 2551 !!
    C'est normal donc que ta formule te donne :
    6 ans = 2190 jours
    12 mois de 30 j = 360 jours
    Et un solde de 1 jour !
    2190+360+1=2551 !
    ça fait des noeuds au cerveau, mais c'est excel !! ☺
    0
    1. brucine Messages postés 25018 Date d'inscription   Statut Membre Dernière intervention   4 181
       
      Bonjour,

      Et qui plus est DATEDIF est plein de vice ne prenant pas en compte la fin de période: par exemple pour faire 12 mois, il faut 01/01/2015 à 01/01/2016 (alors que la réponse exacte est 31/12/2015).

      On arrive à la "vérité" en décomposant plusieurs DATEDIF
      La dernière année pleine de la première période prend fin le 31/12/2013
      Il y a 11 mois du 01/01/2014 au 01/12/2014 (plus 1 jour à cause de DATEDIF) et 15 jours du 01/12/2014 au 16/12/2014.

      Pour la 2ème période, 12 jours du 01/05/2017 au 13/05/2017

      Le résultat global est donc 6 ans 11 mois 27 jours sauf erreur de ma part, restant à mathématiser ça dans une seule formule, je n'ai pas réfléchi au problème.
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour à tous

    Pratiquement d'accord avec Brucine, je trouve le résultat suivant : 6 an(s) 11 mois 26 jour(s)
    avec la formule :
    =ENT(F7/365)&" an(s) "&ENT(MOD(F7;365)/30,42)&" mois "&ENT(MOD(F7;365)-(ENT(MOD(F7;365)/30,42)*30,42))&" jour(s)"
    puisque 365/12 donne une moyenne de 30,42 jours par mois

    Cdlmnt
    Via
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    j'arrive également à 6 ans 11 mois 27 jours
    J'ai laissé les calculs décomposés que tu suives le cheminement, plutôt qu'une formule imbuvable.
    A toi de voir si tu préfères modifier en une formule unique.
    https://www.cjoint.com/c/LBcxSvEjgg4
    eric
    0
    1. brucine Messages postés 25018 Date d'inscription   Statut Membre Dernière intervention   4 181
       
      Bonjour,

      S'il s'agit d'une prestation basée sur une période, on est bel et bien tenu de calculer le nombre de jours exact même si 1 jour ne représente que moins de 1/2000ème de différence et n'a donc aucune incidence.

      Le calcul en moyenne ne peut d'autant tomber sur le résultat exact que "par hasard" qu'il s'agit d'une moyenne et qu'il y a forcément au moins une année bissextile sur la période.

      Mais s'il faut faire le calcul sur le plan formel, on a en effet aussi vite fait de le décomposer que de passer son temps à en faire une formule globale lourde si elle n'est destinée qu'à ce calcul en particulier, et c'est pour cela que je n'en ai pas moi non plus proposé.
      0