Problème conversion de jours en année mois jours

Bonjour, a tous j'ai testé une formule avec datedif mais le resultat est FAUX quelqu'un peut il m'aider a trouver ce que font 1823 jours (en années mois jours)
MAJUSCULE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SI($AB$58="";"";SUBSTITUE(SUBSTITUE(SUBSTITUE(SI(NBR.ENVIES<2;"";SUBSTITUE(SI(RESTE.JOUR.2<30;CONCATENER($AH$2;DATEDIF(MAINTENANT();$AB$58;"YM")&" MOIS= ";" DANS ";$AE$66;"= ''";$AX$3;"''");SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SI(ET(JOUR(MAINTENANT())=JOUR($AB$58);HEURE($AB$60)>HEURE($AB$58));CONCATENER("[";$AH$2;DATEDIF(MAINTENANT();$AB$58;"YM")&" MOIS]= ";RESTE.HEURE.2);SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(CONCATENER("[";$AH$2;"DANS ";$AE$66;"= [";DATEDIF($AB$60;$AB$58;"Y")&" ANS & "&DATEDIF(MAINTENANT();$AB$58;"YM")&" MOIS & "&DATEDIF(MAINTENANT();$AB$58;"MD")&" JOURS]= ";RESTE.HEURE.2;"]");"[1 ANS";"[1 AN");" 0 MOIS";"");" , ET ";", ");"[0 ANS, ";"[");", 0 JOURS";"");"[0 ANS , ";"[");" ,";",");", 1 JOURS";", 1 JOUR");"[1 JOURS";"[1 JOUR");"[0 JOURS]";"");" ET 0 JOURS";""));" 1 JOURS";" 1 JOUR");" & 0 JOURS";"");" & & ";" & ");"[0 ANS & ";"["));"''0''";"''00''"));CONCATENER($CA$23;ENT($CB$23);"");$CD$23);"''''";"''");CONCATENER("''";$CC$29;"''");"''"));$A$41;"''");"''H00''";"''");"''H10";"");"''H20";"");"''H30";"");"''H40";"");"''H50";"");CONCATENER("[";$AH$2;"DANS ";$AE$66;"= [");"[");"'']";"''");"''''";"''");"H''";CONCATENER("H";$AX$2;"''"));"''H00''";"''");"''H10''";"''");"''H20''";"''");"''H30''";"''");"''H40''";"''");"''H50''";"''");"''H60''";"''");"[DANS";"DANS"))

AB58= DATE DE FIN
AB60 DATE DU JOUR

ca me donne ''4 ANS & 11 MOIS & 142 JOURS'' alors que 142 jours ca fait des mois en plus SVP DE L'AIDE. je suis sur excel 2007 windows 8]
MERCI D'AVANCE autre essai en dessous

Configuration: Windows / Chrome 71.0.3578.98

6 réponses

Résumé de la discussion

La difficulté porte sur la conversion de 1823 jours en années, mois et jours avec DATEDIF sous Excel, le résultat obtenu étant parfois inexact ou ambigu. Plusieurs propositions corrigent le calcul en utilisant DATEDIF avec les paramètres 'y' et 'ym' puis en calculant les jours restants via une opération sur les mois, avec des ajustements selon les versions d'Excel. D'autres réponses évoquent des limites selon les versions d'Excel (notamment 2007) et proposent des alternatives, par exemple remplacer md par une décomposition manuelle des années, mois et jours, en tenant compte des heures. En cas d'erreurs mineures, certains recommandent d'arrondir les jours et de tester sur des dates afin de vérifier l'alignement des mois et jours avec le total de 1823.

Bobot (l’IA à votre service)
  1. J'ai retrouvé ce fichier:
    https://www.cjoint.com/c/IACqjbA8zrK
    2
    1. MERCI mais j'y pige rien, je peu t'envoyer mon fichier, tu regarde c plus simple non ?
      si oui comment j'envoi
      0
  2. Bonjour,
    Sur mon Excel 2000, avec la fonction DIFFDATE on trouve
    4 ans 11 mois 28 jours + 0,43 jours, ce qui se vérifie en décomposant
    1823 jours en années mois et jours.
    Si j'ai bien compris la question...
    Cordialement,
    Arthur
    1
    1. alors déja c'est sympa d'avoir répondu, mais les 0,43 jours correspondent a quoi ? pourquoi on trouve pas meme resultat ?
      0
    2. 0.43 jours c'est le reste, soit 10 heures et quelques. Si vous ne trouvez pas le même résultat, c'est que votre formule est fausse.
      0
    3. je vous est noter la formule complète ou est l'erreur d'après vous ? merci de m'aider je suis un novice dans ce genre de calcul
      0
    4. Je n'en ai pas la moindre idée et je ne me lancerai pas dans l'étude de votre formule dont je ne saisis pas bien le fonctionnement et l'utilité.
      Espérons qu'un CCMiste virtuose vous proposera bientôt une solution.
      Cordialement,
      Arthur
      0
  3. Bonjour,
    Une année fait 365 ou 366 jours.
    Un mois fait 28, ou 29, ou 30, ou 31 jours.
    Aujourdhui() renvoi la date du jour, Maintenant() renvoie la date et l'heure.
    Du 28/01/2019 au 25/01/2024 (1823j) >> 4 ans 11 mois et 28 jours.
    Du 28/03/2019 au 24/03/2024 (1823j) >> 4 ans 11 mois et 25 jours.
    1
    1. merci a toi alors comment je fais pour que ca me marque exactement la difference entre les 2 dates je sais je suis compliqué :)
      entre le 28 janvier 2019 a 16:14 et le 26 janvier 2024 a 8:00
      merci pour ta participation
      0
    2. @BOUBAOMÇa va être un peu plus compliqué: il faut passer par des colonnes auxiliaires ou des formules nommées.
      Je regarde ce que j'ai dans mon cagibi.
      0
    3. si tu as 5 min ca serai super sympa, bonne recherche :)
      0
    4. si ca peux t'aider, j'ai simplifie la formule

      SI(ET(JOUR(MAINTENANT())=JOUR(ACHAT);HEURE(NOW.2)>HEURE(ACHAT));CONCATENER("[";DATEDIF(MAINTENANT();ACHAT;"YM")&" MOIS]= ";''43.768H12;"'');CONCATENER("[DANS ";NBR.JOURS.2;"= [";DATEDIF(NOW.2;ACHAT;"Y")&" ANS & "&DATEDIF(MAINTENANT();ACHAT;"YM")&" MOIS & "&DATEDIF(MAINTENANT();ACHAT;"MD")&" JOURS]= ";''43.768H12;"'']")
      0
  4. j'ai aussi essayer :
    SI(ENT(AB64/365)=0;"";SI(ENT(AB64/365)=1;ENT(AB64/365)&" an ";ENT(AB64/365)&" ans "))&SI(ENT(MOD(AB64;365)/30)=0;"";ENT(MOD(AB64;365)/30)&" mois ")&SI((MOD(AB64;365)-(ENT(MOD(AB64;365)/30)*30))=0;"";SI((MOD(AB64;365)-(ENT(MOD(AB64;365)/30)*30))=1;MOD(AB64;365)-(ENT(MOD(AB64;365)/30)*30)&" jour";MOD(AB64;365)-(ENT(MOD(AB64;365)/30)*30)&" jours"))

    la ca marque: 4 ans 12 mois 4 jours (12 mois ca fait pas 1 an) ?
    0
    1. Mon vieil excel refuse d'ouvrir le fichier du #15.
      Le fichier du #13 sera plus compréhensible avec des colonnes auxiliaires qui fractionnent les formules.
      https://www.cjoint.com/c/IACq3agxUVK
      0
      1. Comment je fais ca moi ?
        0
      2. @BOUBAOMDate et heure en colonne A, date et heure en colonne B, Écart (et formule en colonne C).
        Formules intermédiaires en D,E,F.
        Ça doit répondre à la question posée au #9.
        0
      3. tu vas me prendre pour un malade mais il y a plein de formule rattachée si tu veux me trouver une solution j'accepte avec plaisir mais la c IMPOSSIBLE
        0
      4. j'ai fais de mon mieux, si ca peux vous aider a m'aider :)
        0
    2. Dans excel les dates et les heures sont des nombres, il est souvent pratique de conserver les proprietés de nombres. Les formats permettent de changer l'affichage sans changer la valeur.
      Cette solution convient-elle?
      https://www.cjoint.com/c/IADqvLm0rkK

      nota: l'esperluette & agit comme la fonction Concatener() ; la valeur renvoyée est un texte.
      0
      1. ben vous aussi ca marque 141 jours ;(
        nota: je ne connaissait pas le mot esperluette, déjà grâce a vous je dormirai moins con ce soir :)
        0
      2. @BOUBAOMJe n'ai pas 141 jours chez moi sur le fichier datedif3.
        Comment trouvez-vous ça?

        Quelqu'un peut-il vérifier avec Xl2007?
        0
      3. c'est bete la capture d'écran ne fonctionne pas, sinon vous verriez que ca marque 4 ans 11 mois et 141 jours
        0
      4. Contributeur
        Bonjour,

        correct sur 2010, mais voici ce que j'avais noté pour 2007 :
        	DATEDIF(...;...;"md") retourne des résultats erronés sur 2007, remplacer par : 
        B2-DATE(ANNEE(B2);MOIS(B2)-1;JOUR(A2))

        seulement on trouve 4 ans 11 mois 34 jours, c'est mieux mais pas encore ça.
        Je te propose de tricher autrement en s'appuyant sur DATEDIF(...;"m") qui lui est correct, avec pour 'jours' :
        ...&C2-MOIS.DECALER(D2;DATEDIF(D2;C2;"m"))

        qui donne 28.3333 à cause du 8:00
        Vu que je n'ai pas suivi (et pas trop le temps d'analyser tous les posts) ce que faisait les heures ici je te laisse gérer le traitement de partie décimale ;-)

        Il faudrait sans doute examiner plus d'exemples pour voir si ce correctif est toujours d'équerre.
        eric
        0
      5. bonsoir eriiic et merci pour ton aide, les heures c'est pour avoir un calcul plus précis entre maintenant() et la date recherchée par contre ta formule je pige que dalles peux tu la mettre en entier ?
        0