PB ancienneté

Résolu
wakatepe Messages postés 26 Statut Membre -  
wakatepe Messages postés 26 Statut Membre -
Bonjour,

Je cherche a calculer l'ancienneté sur un bulletin de paie mais il se trompe d'un mois
exemple date arrivée 01/11/2009
date de paie 01/01/2016 au 31/01/2016
j'ai fais la formule : =DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")&" mois"
mais il me renvoit 6 an(s) et 2 mois au lieu de 6 ans et 3 mois
J'ai testé pour avoir 6ans et 3 mois il faudrait que je saisisse 30/10/2009
Dans I2 il y a 01/11/2009 et dans F9 31/01/2016 (date de fin de paie)
Pouvez vous m'aider SVP
MErci d'avance
cordailement

10 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    comme cela

    =DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")+1&" mois"

    mais le problème se pose si la date de départ est par exemple le 30/11/2009
    si c'est le cas il faudra compléter la formule
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. wakatepe Messages postés 26 Statut Membre
       
      Ha oui ca fonctionne pour le 01/11/2009 mais en effet pas pour le 30/11/2009 !!
      Tu proposes quoi comme solution pour que ca fonctionne pour tous les cas?
      merci d'avance
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    reste à savoir à partir de combien de jours dans le mois il est considéré comme entier, j'explique
    01/11/2009 pour un calcul fin de mois pas de problème 3 mois
    pour un début 30/11/2009 pas de problème pas de problème 2 mois

    mais pour une date de début 15/11/2009 ou autre comme 10/11 ou 18/11 pour une date de calcul fin de mois comme 31/01/2016 quelle valeur donner 2 ou 3 mois !

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. wakatepe Messages postés 26 Statut Membre
       
      ben pour une arrivée en cours de mois il faut a mon avis compter par mois entier
      dans le cas du +1 c'est pas normal d'avoir la meme chose si entrée le 1er ou le 30 du mois !! ;)
      0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    et bien si c'est normal, si tu prends un mois
    exemple 01/11/2009 au 31/01/2016 donc mois 11 au mois 01 cela fait bien novembre, décembre et janvier soit 3 quelque soit le jour
    mais pour excel entre novembre et janvier il y a bien deux mois décembre et janvier
    il faut donc appliquer le problème des intervalles si on compte le premier et dernier mois c'est le nombre d'intervalles +1
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. wakatepe Messages postés 26 Statut Membre
       
      ben si qq est entrée comme dans mon exemple le 01/11/2009 et que ma paie est le 31/01/2016 cela doit faire 6 ans et 3 mois et en appliquant le +1 sur la formule ca fonctionne mais par contre en saisissant le 30/11/2009 ca fait aussi 6 ans et 3 mois alors que cela drevrait faire 6 ans et 2 mois !!
      NON ?
      merci d'avance ;)
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    NON ton mois est toujours 11 que ce soit 01/11/ ou 30/11
    pour les années c'est pareil entre 2009 et 2016 tu as bien 6 jusqu'en novembre pas 7
    0
    1. wakatepe Messages postés 26 Statut Membre
       
      ben il faut pas si qq est arrivé le 01/11 il faut compter le mois et si il arrive le 30/11 ne pas le compter pareil d'ailleur pour entrée en cours de mois !!!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    c'est pour cela qu'il faut tester le jour, si inférieur à 30

    =SI(JOUR(I2)<30;DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")+1&" mois";DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")&" mois")

    mais le problème est plus complexe parce qu'il faut tenir compte de février avec ses 28 jours.
    Enfin si c'est ce que tu veux j'écrirai une formule en prenant en compte la fin du mois quelque soit le nombre de jours
    0
    1. wakatepe Messages postés 26 Statut Membre
       
      ha ok j'avais pas compris ce que tu voulais dire !! c'est beaucoup plus clair maintenant!! un grand merci !!
      0
    2. wakatepe Messages postés 26 Statut Membre
       
      ha mais j'ai un autre probleme si je teste
      =SI(JOUR(I2)<2;DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")+1&" mois";DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")&" mois")
      avec par exemple date entrée 01/07/2010 pour un bulletin du 01/06/2016 au 30/06/2016 il marque 5 ans et 12 mois !!! au lieu de 6 ans!!
      J'ai mis <2 car si entré en cours de mois le mois n'est pas compté
      merci
      0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Alors voila la formule qui s'adaptera au dernier jour du mois en I2

    =SI(JOUR(I2)<FIN.MOIS(I2;0);DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")+1&" mois";DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")&" mois") 

    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    essaye comme cela voir
    =SI(DATEDIF(I2;F9;"ym")+1=12;DATEDIF(I2;F9;"y")+1&" an(s)";SI(JOUR(I2)<2;DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")+1&" mois";DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")&" mois")) 

    0
    1. wakatepe Messages postés 26 Statut Membre
       
      haaaa la derniere a l'air de bien fonctionner!! bravo !! il fallait la trouver!! ;) si par hasard il y a un cas ou ca fonctionne pas je te le dirai mais mes premiers tests ont l'air concluant!!
      encore merci
      0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Ok pas de problème en attendant je mets le statut en résolu mais rien ne t’empêchera de revenir sur la discussion

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  10. wakatepe Messages postés 26 Statut Membre
     
    bonjour !

    J'ai trouvéééééééé
    il y a beaucoup plus simple que cette énorme formule c'est de mettre le +1 ailleurs comme :
    =DATEDIF(B44;C44;"y")&" années "&DATEDIF(B44;C44+1;"m")&" mois"
    Si il y a 01/01/2000 et 30/09/2000 il met bien 9 mois et si je mets 02/01/2000 il met bien 8 mois
    Merci pour votre participation !!!!
    0
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    tu n'as absolument rien trouvé, c'est la même formule à la différence qu'elle ne traite pas le pluriel pour les années et ignore les jours avec leur pluriel
    je dirai même qu'elle est fausse parce que cette partie te donne le nombre de mois global entre les deux dates
    DATEDIF(B44;C44+1;"m") il manque un y DATEDIF(B44;C44+1;"ym")

    cette formule, je te l'ai donné sur le premier post si tu adaptes les plages
    =DATEDIF(I2;F9;"y")&" an(s) "&DATEDIF(I2;F9;"ym")+1&" mois"
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. wakatepe Messages postés 26 Statut Membre
       
      ha bon pourtant au 1er test ca a l'air de fonctionner !! le +1 est pas au meme endroit que ta formule et ca change tout !!
      et vraiment désolé mais je comprends rien a ta réponse c'est quoi le "pluriel années" et les "jours avec leur pluriel"?
      0