Cacul jours mois annee avec datedif

Résolu
Gil369 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18396 Date d'inscription   Statut Contributeur Dernière intervention   - 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 18396 Date d'inscription   Statut Contributeur Dernière intervention   5 131
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 779
 
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 18396 Date d'inscription   Statut Contributeur Dernière intervention   5 131
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 779
 
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   Statut Membre Dernière intervention  
 
re,
bon sang mais c'est bien sur !!!!
merci beaucoup
cordialement
Gil
0
Gil369 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention  
 
Sujet résolu
Cordialement
Gil
0
Gil369 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Mike-31
j'ai testé ta formule; c'est nickel !!!!

Merci a vous deux : Mike et Patrice

Cordialement

Gil

0