Calcul de durée (deux intervalles)

Bonjour à tous,

a peine rentré de congé que déjà, je vous sollicite. Vous trouverez dans le fichier joint les explications correspondant à mon problème. Il s'agit d'une formule que je n'arrive pas à trouver concernant un calcul de durée relatif à deux intervalles dictincts: exemple: du 01/01/98 au 31/07/2000 et du 18/07/2003 au 31/12/2010.

J'ai essayé d'adapter une formule de Nad mais je coince.

D'avance, merci pour vos réponses.

Bien cordialement,

Elfi

Salut elfi,

Essaie avec ça :

=SI(C4="";"";DATEDIF(C4;D4-1;"y")+DATEDIF(E4;DATE(2010;12;31);"y")&SI(DATEDIF(C4;D4-1;"y")+DATEDIF(E4;DATE(2010;12;31);"y")>1;" ans, ";" an, ")&DATEDIF(C4;D4-1;"ym")+DATEDIF(E4;DATE(2010;12;31);"ym")&" mois, ")&DATEDIF(C4;D4-1;"md")+DATEDIF(E4;DATE(2010;12;31);"md")&" jours "

Bonjour

=SI(C4="";"";DATEDIF(C4;D4+DATE(2010;12;31)-E4;"y")&SI(DATEDIF(C4;D4+DATE(2010;12;31)-E4;"y")>1;" ans, ";" an, ")&DATEDIF(C4;D4+DATE(2010;12;31)-E4;"ym")&" mois, "&DATEDIF(C4;D4+DATE(2010;12;31)-E4;"md")&SI(DATEDIF(C4;D4+DATE(2010;12;31)-E4;"md")>1;" jours";" jour"))

Amicalement

Nad

Bonsoir,

Je pense qu'il existe déjà un problème sur le résultat à obtenir pour l'ensemble des 2 périodes :

1) 01/09/1986 au 31/12/1987

2) 01/01/1988 au 31/12/2010

En effet :

Plabrousse annonce : 24 ans 3 mois et 30 jours

Nad annonce : 23 ans 10 mois et 1 jour

Vba New annonce : 23 ans 8 mois et 60 jours

Personnellement, je m'appuie sur la méthode de calcul de la sécurité sociale (tous les mois calendaires complets sont comptés pour une unité, pour les mois incomplets il faut prendre le nombre de jours calendaires en comptant les dates extrêmes), ce qui donne : 23 ans et 10 mois

Période du 01/09/1986 au 31/12/1987 :

01/09/1986 au 31/12/1986 : 4 mois

01/01/1987 au 31/12/1987 : 1 an

01/07/1988 au 31/12/2010 :

01/07/1988 au 31/12/1988 : 6 mois

01/01/1989 au 31/12/2010 : 22 ans

Total des 2 périodes :

23 ans et 10 mois

Par ailleurs, je vous signale qu'on peut alléger des formules du type :

DATEDIF(E4;DATE(2010;12;31)

en mettant à la place

DATEDIF(E4;"31/12/2010")
Marmotte18 a écrit :

Total des 2 périodes :

23 ans et 10 mois

Moi : 23 ans 8 mois et 60 jours = 23 ans et 10 mois

J'ai donc pas tout à fait tort

Bonjour

En effet, dans ma formule j'ai basé la 1ère date de fin de période sur la cellule D4 - Or, cette cellule est la date de départ de l'interruption ; le jour d'arrêt est donc la veille. Donc modification de la formule :

=SI(C4="";"";DATEDIF(C4;D4-1+DATE(2010;12;31)-E4;"y")&SI(DATEDIF(C4;D4-1+DATE(2010;12;31)-E4;"y")>1;" ans, ";" an, ")&DATEDIF(C4;D4-1+DATE(2010;12;31)-E4;"ym")&" mois, "&DATEDIF(C4;D4-1+DATE(2010;12;31)-E4;"md")&SI(DATEDIF(C4;D4-1+DATE(2010;12;31)-E4;"md")>1;" jours";" jour"))

Une formule pour mieux comprendre :

=DATEDIF(Debut1;Fin1+Fin2-Debut2;"y")&SI(DATEDIF(Debut1;Fin1+Fin2-Debut2;"y")>1;" ans, ";" an, ")&DATEDIF(Debut1;Fin1+Fin2-Debut2;"ym")&" mois, "&DATEDIF(Debut1;Fin1+Fin2-Debut2;"md")&SI(DATEDIF(Debut1;Fin1+Fin2-Debut2;"md")>1;" jours";" jour")

Amicalement

Nad

Bonjour à tous,

avec un peu de retard en raison d'un changement d'outil chez moi, je vous remercie tous de vos réponses.

Je regarde toutes vos propositions et vous tiens au courant.

A+,

bien cordialement,

Elfi

-- Mer Juil 28, 2010 1:28 pm --

Rebonjour,

tout cela me convient parfaitement. Merci à tous pour les réponses.

Il me reste un petit problème de cohérence. je vous mets tout dans le fichier joint.

A+,

Elfi

Bonjour,

A mon avis, c'est un problème d'intervalle.

Suposons : A1 = 28/07/2010 A2=29/07/2010

En A3, mettons la formule :

=DATEDIF(A1;A2;"md")

Le résultat amènera la valeur 1 alors que manifestement, il y a 2 jours si l'on suppose qu'on est présent le 28/07 à la première heure et le 29/07 à la dernière heure. Il faut donc amener un correctif. Dans ce cas la bonne formule est :

=DATEDIF(A1;A2;"md") +1

Pour moi, entre le 01/09/1986 et le 31/12/2010 (dates comprises) devrait amener le résultat : 24 ans 4 mois

au lieu de 24 ans 3 mois 30 jours

au lieu de 24 ans 3 mois 29 jours

Re

Cela est dû au -1 fait pour avoir la veille du jour de l'interruption en D.

Formule modifiée :

=SI(C4="";"";DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"y")&SI(DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"y")>1;" ans ";" an ")&DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"ym")&" mois "&SI(DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"md")=0;"";DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"md")&SI(DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"md")=0;"";SI(DATEDIF(C4;SI(D4="";0;D4-1)+DATE(2010;12;31)-E4;"md")>1;" jours";" jour"))))

Amicalement

Nad

Bonsoir,

A mon avis, il faudrait utiliser les formules DATEDIFF de la manière suivante en supposant que l'on mette en A1 la date de début de période et en B1 la date de fin de période :

Nombre d'années = DATEDIF(A1;B1+1;"y")

Nombre de mois = SI(DATEDIF(A1;B1+1;"m")>=12;DATEDIF(A1;B1+1;"m")-12*DATEDIF(A1;B1+1;"y");DATEDIF(A1;B1+1;"m"))

Nombre de jours = DATEDIF(A1;B12+1;"md")

Tout cela pour calculer le nombre d'années / mois / jours qui se sont écoulées entre les 2 dates (dates comprises). De cette manière, on arriverait sur les valeurs que je vous ai indiquées :

Exemple 1

01/09/1986 au 31/12/1987 ferait bien 1 an et 4 mois

01/01/1988 au 31/12/2010 ferait bien 23 ans

soit au total 24 ans et 4 mois

Exemple 2

01/09/1986 au 31/12/2010 ferait bien 1 an et 4 mois

Pour mieux comprendre, je vous joins mon fichier d'analyse.

Bonjour,

cette question a engendré des réponses trés intéressantes. Merci à NAD pour sa formule.

et à Marmotte18 pour tous ces éclaircissements

à bientôt et bonne journée,

Elfi

Rechercher des sujets similaires à "calcul duree deux intervalles"