Ancienneté Salariés

Bonjour à tous et à toutes,

Je me permets de faire appel à vous après plusieurs recherches qui n'ont donné aucun résultat.

Comme vous pouvez le voir dans le fichier joint ci-dessous, je cherche à connaître l'ancienneté moyenne de l'ensemble des salariés .

A noter que la formule pour le calcul de l'ancienneté d'UN salarié est la suivante :

=DATEDIF($E4;AUJOURDHUI();"y") & " ans " & DATEDIF($E4;AUJOURDHUI();"ym") & " mois"

D'autre part, dans la colonne "Augmentat°, j'ai besoin d'afficher "OUI" lorsqu'on arrive à la date d'anniversaire du contrat d'UN salarié.

J'espère que vous pourrez m'aider,

Merci par avance.

Bonjour,

Ta formule n'est pas exacte pour un calcul d'ancienneté !

Si je prends ta première ligne, dans 2 jours, le 21, elle continuera d'afficher 1 an et 8 mois, alors que 1 an et 9 mois sera atteint ce jour là !! DATEDIF fait une différence brute entre 2 dates, la date d'aujourd'hui (ou la date de fin d'un contrat) étant incluse dans le contrat, il convient de faire la différence entre la date de départ et AUJOURDHUI()+1.

Cordialement.

Par ailleurs, pour ta formule "augmentation", je verrais quelque chose de ce genre :

=SIERREUR(SI(DATEDIF(DATE(ANNEE(AUJOURDHUI());MOIS(E4);JOUR(E4));AUJOURDHUI();"d")<30;"Oui";"");"")

30 à remplacer par le nombre de jours durant lesquels tu veux que le Oui s'affiche, en jours.

Tant que la date anniversaire n'est pas atteinte, la formule renvoie une erreur (récupérée pour ne rien afficher), lorsqu'elle est atteinte, la différence est 0, puis elle va augmenter les jours suivants...

Cordialement.

Bonjour, Bonjour

Merci pour la formule concernant l'augmentation c'est parfait. Me confirmez-vous que le "oui" s'affichera quand un salarié aura un an supplémentaire d'ancienneté même si je laisse l'affichage du "oui" à 30 jours?

Comment écririez-vous la formule pour le calcul de l'ancienneté s'il vous plaît ? et comment calculer l'ancienneté moyenne des salariés s'il vous plaît?

Une bonne journée,

Cordialement.

Bonjour,

La formule "augmentation" fait la différence de la date anniversaire dans l'année en cours avec aujourd'hui, en jours. Quand aujourd'hui atteint cette date, la différence est 0 (tant qu'elle ne l'a pas atteint, la différence serait négative, d'où erreur et pas d'affichage. A partir de 0, la formule affiche Oui. Comme je suppose que tu provoques cet affichage pour opérer un traitement, aussi vite que tu réagisses il faut tout de même que le Oui persiste plusieurs jours (ne serait-ce que la date pouvant tomber sur un week-end, tu peux n'ouvrir le classeur que lorsque la différence est déjà 1 ou 2...). J'ai mis 30 pour illustrer, mais à toi de voir le délai d'intervention maximal que tu prévois après la date anniversaire : 8, 15, etc., après quoi l'alerte disparaîtra pour reparaître l'année suivante...

Pour le calcul de l'ancienneté, le jour de début fait partie de l'ancienneté et aujourd'hui, jour où on l'évalue en fait aussi partie. Pour en tenir compte, il suffit d'ajouter 1 jour à la borne de fin (comme dans tous les cas où les bornes font partie de la durée calculée. Donc là où tu mets : AUJOURDHUI() dans la formule, tu mets simplement : AUJOURDHUI()+1...

J'ai vu par ailleurs que pour certains des fins de contrat étaient mentionnées... Je ne sais comment tu dois les prendre en compte, mais le cas échéant c'est possible...

Pour l'ancienneté moyenne, on ne peut la faire à partir du résultat individuel, ce dernier étant restitué sous forme texte. Je vais regarder ça pour le mode de calcul le plus simple... A+

Voilà une formule qui devrait donner le résultat pour l'ancienneté moyenne :

=ENT(SOMMEPROD(JOURS360(E4:E26;AUJOURDHUI()))/LIGNES(E4:E26)/360)&" ans "&ARRONDI(MOD(SOMMEPROD(JOURS360(E4:E26;AUJOURDHUI()))/LIGNES(E4:E26)/30;12);0)&" mois"

NB- J'ai tenté d'utiliser la fonction FRACTION.ANNEE mais celle-ci ne se prête pas à un traitement matriciel, je me suis donc rabattue sur JOURS360 qui s'y prête !

Une vérification avec FRACTION.ANNEE calculée individuellement et moyennée donne le même résultat, ce devrait donc être conforme...

Cordialement.

Merci pour ta réponse pour le calcul de l'ancienneté d'un salarié. J'ai encore beaucoup de choses à apprendre

Merci également pour ta formule pour l'ancienneté moyenne qui est d'ailleurs costaud pour ma part lol, mais je trouve qu'il y a un problème dans le résultat, je tombe à 8 ans et 2 mois alors que le salarié qui a le plus d'ancienneté est à 6 ans d'ancienneté. Quand je fais un calcul à part, je tombe à 3 ans ...

Merci pour le temps que tu prends.

Sur ton fichier le résultat donné par la formule est : 3 ans 3 mois.

Où as-tu placé la formule ? Vérifie.

Oui en effet ça fonctionne, autant pour moi.

Une petite dernière question, si j'ai des cellules vides dans la date d'entrée, comment je peux faire la moyenne sans en tenir compte?

Remplace dans la formule LIGNES(E4:E26) par NB(E4:E26). Cela devrait ajuster le nombre.

Cela ne fonctionne pas ....

En effet une cellule vide prend la valeur 0 dans l'opération, et 0 est pris en compte comme date, ce qui fausse le résultat (ce pourquoi tu arrives à une moyenne de 8 ans. Il faut donc les éliminer du calsul :

=ENT(SOMMEPROD((E4:E26<>"")*JOURS360(E4:E26;AUJOURDHUI()))/NB(E4:E26)/360)&" ans "&ARRONDI(MOD(SOMMEPROD((E4:E26<>"")*JOURS360(E4:E26;AUJOURDHUI()))/NB(E4:E26)/30;12);0)&" mois"

Cordialement.

C'est parfait ça fonctionne .

Merci pour tout vraiment je n'y serai jamais arrivée.

Cordialement.

Tu verras qu'au fur et à mesure des choses qui te paraissent compliquées se présenteront comme beaucoup moins compliquées, puis finalement assez simples quand on les prend par le bon bout...

Rechercher des sujets similaires à "anciennete salaries"