Calcul de l'ancienneté pour les personnes plus dans l'effectif

LinDouch42 -  
Raymond PENTIER Messages postés 58230 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je m'arrache les cheveux pour obtenir l'ancienneté de salariés.

Colonne L : date début contrat
Colonne M : date de fin contrat
Colonne N : =SI(L28="";"";(DATEDIF(L28;AUJOURDHUI();"y") & " ans " & DATEDIF(L28;AUJOURDHUI();"ym") & " mois"))

Cette formule me donne donc l'ancienneté uniquement de ceux qui sont dans l'effectifs.
Mais je n'arrive pas à trouvé une formule qui exprime : Si, la cellule M est vide, alors calcul de l'ancienneté entre cellule L et aujourdhui, sinon calcul de l'ancienneté de la cellule entre L à M.

Complication supplémentaire, Je souhaite pouvoir exprimer cette ancienneté en xx ans yy mois mais il arrive parfois que les contrats n'ont que quelques mois et dans ce cas les exprimer en xx mois et yy jours.

J'espère que mon besoin est clair pour vous et vous remercie pour votre aide.

Cdt

Pour ceux toujours dans l'entreprise pas de problème, la formule que j'ai :

Configuration: Windows / Chrome 86.0.4240.198

6 réponses

  1. Raymond PENTIER Messages postés 58230 Date d'inscription   Statut Contributeur Dernière intervention   17 498
     
    Comme tu le constates, ta formule est déjà très longue.
    Si tu dois ajouter ces deux conditions supplémentaires, et en profiter pour mettre le "s" du pluriel pour "an" et pour "jour" seulement quand nécessaire, ta formule sera deux fois plus longue, et un vrai casse-tête si tu veux l'adapter plus tard ...
    Dans ces cas-là, je procède toujours à des calculs intermédiaires, afin que ma formule principale reste accessible et compréhensible.
    Ainsi j'ai placé 6 petites formules dans les colonnes U à Z, ce qui me permet d'avoir la formule "light" suivante :
    =SI(L9="";"";SI(U9=0;"";U9&V9)&SI(W9=0;"";W9&X9)&SI(U9=0;Y9&Z9;""))
    https://www.cjoint.com/c/JKmwXNVkGPg
    Cordialement.
    1
    1. LinDouch42
       
      Merci mais le fichier joint ne semble pas être le bon.
      0
  2. PapyLuc51 Messages postés 4579 Date d'inscription   Statut Membre Dernière intervention   1 515
     
    Bonjour

    Salutations Raymond

    Ça m'arrive aussi d'utiliser les sous-calculs ;)

    Pour la formule longue en voici une qui distingue le singulier du pluriel pour les années ; qui ne marque ni les mois ni les années si c'est égal à 0 ; et j'a ajouté un alerte quand la date de sortie est inférieur à la date d'entrée mise en évidence par une MFC ; et aussi la cellule reste vide également quand la cellule d'ENTRE est vide ou marque "?"

    =SI(OU(L5="";L5="?");"";SI(M5="";SI(DATEDIF(L5;AUJOURDHUI();"y")=0;"";DATEDIF(L5;AUJOURDHUI();"y")&SI(DATEDIF(L5;AUJOURDHUI();"y")>1;" ans ";"an "))&SI(DATEDIF(L5;AUJOURDHUI();"ym")=0;"";DATEDIF(L5;AUJOURDHUI();"ym")&" mois");SI(M5<L5;"/!\ SORTIE < ENTREE";SI(DATEDIF(L5;M5;"y")=0;"";DATEDIF(L5;M5;"y")&SI(DATEDIF(L5;M5;"y")>1;" ans ";"an "))&SI(DATEDIF(L5;M5;"ym")=0;"";DATEDIF(L5;M5;"ym")&" mois"))))


    https://www.cjoint.com/c/JKngwjUl1PI

    Cordialement
    1
    1. LinDouch42
       
      Super, la formule semble être bien adapter et me permet même de voir les saisies incohérentes.

      J'attends de voir la solution de Raymond avec le bon fichier pour ma connaissance personnelle mais en tout cas merci beaucoup PapyLucy51.

      Cdt
      0
      1. PapyLuc51 Messages postés 4579 Date d'inscription   Statut Membre Dernière intervention   1 515 > LinDouch42
         
        Merci du retour,

        Je viens de m'en apercevoir une petite correction à deux endroits de la formule ; mettre un espace avant an

        SI(DATEDIF(L5;AUJOURDHUI();"y")>1;" ans ";" an "))

        SI(DATEDIF(L5;M5;"y")>1;" ans ";" an "))

        Cordialement
        0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour tout le monde
    sans de prendre la t^te

    pour ceux qui sont toujours là:
    =aujourdhui() en A2
    date d'entrée en B2
    En D2, et en E2 et en F2
    formule: $B2-$A2
    format nombre personnalisé aaaa en D2 mm en E2 jj en F2

    et pour les retraités comme Raymond, Vaucluse et Moi
    date de départ en A2 (champagne)
    1
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      heu!...
      les résultats sont des nombres et peuvent donc être utilisés pour des stats

      lles années, mois, jours commencés mais non terminés sont comptés comme terminés
      0
    2. LinDouch42
       
      Merci Michel,

      Mais je ne peux pas avoir en A2 et la mention Aujourdhui() et la date de départ. Cela suppose que je veux l'information sur deux colonnes différentes , alors que je veux l'info dans une seule colonne.

      Cdt
      0
  4. Raymond PENTIER Messages postés 58230 Date d'inscription   Statut Contributeur Dernière intervention   17 498
     
    En effet, Linda, le fichier concernait un autre demandeur ...
    Voici le bon : https://www.cjoint.com/c/JKnmRklMcLg
    Bisou.
    1
    1. LinDouch42
       
      Merci, méthode très intéressante.

      Cdt
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Raymond PENTIER Messages postés 58230 Date d'inscription   Statut Contributeur Dernière intervention   17 498
     
    Bonsoir Linda.

    Tu annonces une formule, mais tu ne l'as pas écrite !
    De plus, tu n'as joint ton fichier Excel ...
    0
    1. LinDouch42
       
      Bonsoir, Raymond,

      https://www.cjoint.com/c/JKmxsXgPZAj

      la formule =SI(M9="";(DATEDIF(L9;AUJOURDHUI();"y") & " ans " & DATEDIF(L9;AUJOURDHUI();"ym") & " mois");(DATEDIF(M9;AUJOURDHUI();"y") & " ans " & DATEDIF(M9;AUJOURDHUI();"ym") & " mois"))

      Elle a l'aire de fonctionner sauf pour les contrats de qq mois. Je suis donc a la recherche d"une formule qui palier à ce pb.

      Merci
      0
  7. Raymond PENTIER Messages postés 58230 Date d'inscription   Statut Contributeur Dernière intervention   17 498
     
    Très chère Linda,

    j'ai décidé que cette discussion ne pouvait pas s'arrêter là, et qu'elle méritait d'être prolongée !
    En effet je n'ai pu résister au plaisir de tenter une autre approche de ton problème, en délaissant les cellules de calculs intermédiaires, mais en passant par les formules définies ...
    Tu connais probablement déjà les noms définis et les plages définies (ou nommées).
    Le même outil FORMULES/Noms définis/Gestionnaire de noms nous permet de créer également des formules nommées.
    Je te propose donc les formules nommées dy, dm et dd, décrites dans le cadre en L16), que j'utilise dans ma formule principale en N9 (que tu peux lire tranquillement en L10).
    Pour contrôle, j'ai testé différents cas de figure dans le tableau L11:N15.
    Je pense que cette technique devrait te plaire, y compris pour d'autres fichiers que tu as en chantier, et devrait résoudre intégralement ton problème actuel.
    https://www.cjoint.com/c/JKobiyB3tSg
    Bisou.
    0