Cacul jours mois annee avec datedif

Résolu/Fermé
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018 - 7 nov. 2018 à 10:21
Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 8 nov. 2018 à 07:35
Bonjour,
je souhaiterai résoudre un souci de calcul de date :

j'ai en B3 : 01/01/2018
en C3 : 31/12/2018
en D3 : =DATEDIF(B3;C3;"y") & " a " & DATEDIF(B3;C3;"ym") & " m et " & DATEDIF(B3;C3;"md") & " j"
le résultat affiche : 0a 11m 30j
comment afficher 1a ?

Cordialement
Gil

4 réponses

Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
7 nov. 2018 à 11:02
Bonjour,

et oui c'est le principe des intervalles si on compte le premier jour et le dernier il faut soit ajouter +1 à une date ou -1 à l'autre

pour revenir à la demande ta formule modifiée avec l'aide de Patrice que je salue t'affichera des mois ou des jours à 0 dans ton exemple 1 a 0 m et 0 j

ce qui est dommage, une formule plus complexe permet d'afficher uniquement les années ou mois ou encore jours s'il y en a et prend en compte le pluriel des années et jours si c'est le cas
=SI(C3+1-B3;TEXTE(DATEDIF(B3;C3+1;"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(B3;C3+1;"ym");"[>]0"" mois "";")&SI(C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))>1;C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))&" jours";SI(C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))=1;C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))&" jour";"")))

et pour traiter les cellules C3 et B3 vide tu peux ajouter une conditionnelle
=SI(ET(B3<>"";C3<>"");SI(C3+1-B3;TEXTE(DATEDIF(B3;C3+1;"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(B3;C3+1;"ym");"[>]0"" mois "";")&SI(C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))>1;C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))&" jours";SI(C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))=1;C3+1-MOIS.DECALER(B3;DATEDIF(B3;C3+1;"m"))&" jour";""))))

1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
8 nov. 2018 à 01:00
Bonjour Mike,
Bonjour Gil,

Plus simplement :
=SI(ET(B2>0;B2<C2);TEXTE(DATEDIF(B2;C2+1;"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(B2;C2+1;"ym");"[>]0"" mois "";")&TEXTE(DATEDIF(B2;C2+1;"md");"[>1]0"" jours"";[>]""1 jour"";");"")


Cdlt
Patrice
0
Mike-31 Messages postés 18317 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
8 nov. 2018 à 07:35
Salut Patrice,

Je n'ai pas eu le temps d'aller plus loin ni tester ta formule que tu as certainement fait mais AH OUI pas besoin d'autant de conditionnelles effectivement.
J'espère que Gil369 repassera par la.
Merci à toi et bonne journée.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
7 nov. 2018 à 10:28
Bonjour,

En ajoutant le jour qui manque !
I.e dans la formule, remplacer C3 par (C3+1)
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 nov. 2018 à 10:51
re,
bon sang mais c'est bien sur !!!!
merci beaucoup
cordialement
Gil
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 nov. 2018 à 10:54
Sujet résolu
Cordialement
Gil
0
Gil369 Messages postés 120 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 7 novembre 2018
7 nov. 2018 à 11:29
Bonjour Mike-31
j'ai testé ta formule; c'est nickel !!!!

Merci a vous deux : Mike et Patrice

Cordialement

Gil

0