Cacul jours mois annee avec datedif

Résolu
Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      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
    2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      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
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    En ajoutant le jour qui manque !
    I.e dans la formule, remplacer C3 par (C3+1)
    0
    1. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
       
      re,
      bon sang mais c'est bien sur !!!!
      merci beaucoup
      cordialement
      Gil
      0
  3. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    Sujet résolu
    Cordialement
    Gil
    0
  4. Gil369 Messages postés 75 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