Problème calcul durée entre plusieurs dates

Fermé
Guygablau Messages postés 25 Date d'inscription lundi 23 novembre 2020 Statut Membre Dernière intervention 13 août 2024 - 1 févr. 2022 à 17:47
brucine Messages postés 17026 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 3 octobre 2024 - 3 févr. 2022 à 08:49
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
A voir également:

3 réponses

crooner76 Messages postés 342 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 28 août 2024 48
Modifié le 1 févr. 2022 à 18:34
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
brucine Messages postés 17026 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 3 octobre 2024 2 413
1 févr. 2022 à 18:52
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
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
3 févr. 2022 à 00:00
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
eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 7 235
3 févr. 2022 à 00:48
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
brucine Messages postés 17026 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 3 octobre 2024 2 413
3 févr. 2022 à 08:49
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