Suivi des effectifs

Résolu
niro92 Messages postés 5 Statut Membre -  
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour les amis,

Voici l'objet de mon mail... Je souhaite mettre en place un fichier de suivi des effectifs Cdd. Passionnant, je sais..

Description :
en colonne A, j'indique le nom,
en colonne B, le prénom,
en colonne C, le service,
en D, la date d'entrée,
en E, la date de sortie
de la colonne F à Q, chacun des mois de l'année.

En ligne 7, j'ai le salarié Y.

Objectif à atteindre :
Je voudrais - en renseignant uniquement les dates d'entrée et de sortie - que les colonnes "mois" affichent : 1 si le salarié a été présent le mois complet, 0 si le salarié nétait pas présent le mois donné, un temps pondéré si le salarié n'était pas présent le mois complet (pondération fonction des jours de présence).

Voici les hypothèses que j'a retenues :
- si, en janvier, date de début >31/01/09 alors 0
- si, en janvier, date fin<01/01/09 alors 0
- si, en janvier, date de début >= 01/01/09 alors (31/01/09 - date fin contrat)/ (nb de jour du mois - 1)
- si, en janvier, date de fin <= 31/01/09 alors (date fin contrat - 01/01/09) / (nb de jour du mois -1)
- si, en janvier, date de début = 01/01/09 alors 1
- si, en janvier, date de fin = 31/01/09 alors 1

Rq : j'ai parfois mis -1 (nb de jours du mois - 1) pour palllier le problème des intervalles.

Résultats :

Ca marche pas dans tous les cas de figure.
Voici ma formule (incomplète) :
=SI($D$7<G2;(F3-$D$7)/(F4-1);SI($D$7>G2;0;SI($E$7>=F3;1;SI($E$7>F2;($E$7-F2)/F4;SI($E$7<G2;0;)))))

Please... aidez-moi... même la musique de Jackson en fond sonore ne m'a pas permis de solutionner mon pbl..
Merciiiiiiiiiiiiiiiiiiiii

9 réponses

Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Quel logiciel ?
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 398
 
Salut.

Tu as très lisiblement exposé tes hypothèses de travail, mais elles comportent des erreurs.

J'ai aussi essayé de reconstituer ton tableau, puisque tu as oublié de joindre ton fichier à ton message, en me servant de l'exposé et de ta formule ; mais j'hésite ici :
On devine que la ligne 2 contient le premier jour du mois, et la ligne 4 le nombre de jours du mois, mais qu'il y a-t-il dans la ligne 3 ? le dernier jour du mois ?

à suivre ...
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 398
 
suite 1 ...

► L'hypothèse N° 3 comporte une erreur :
si, en janvier, date de début >= 01/01/09 alors (31/01/09 - date fin contrat) / (nb de jour du mois - 1)doit être ainsi rectifiée
si, en janvier, date de début >= 01/01/09 ET date de fin >= 31/01/09 alors (31/01/09 - date début contrat) / (nb de jour du mois - 1)

► Ton premier test SI($D$7<G2;(F3-$D$7)/(F4-1) est donc incomplet ; il faut tester la double condition D7<G2 et E7>=F3. En effet si D7=01/11/08 et F7=15/12/08 ta formule sera faussée !

► Même raisonnement pour le quatrième test SI($E$7>F2;($E$7-F2)/F4 ; il faut tester la double condition E7>G2 et D7<=F3. En effet si E7=15/06/09 et D7=15/04/09 ta formule sera faussée !

Je suggère de traiter d'abord les cas simples (réponse 0 ou 1) :
=SI( OU(Fin<DMois;Début>FMois);0; SI(ET(Début<=DMois; Fin>=FMois);1;"-") )
Nous verrons seulement ensuite les cas intermédiaires.

... à suivre ...
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 398
 
... suite et fin.

Dans le post 3 et dans celui-ci, à noter que n'ai nommé mes plages :
Début pour la colonne D, Fin pour la colonne E, DMois pour la ligne 2, FMois pour la ligne 3, NbJ pour la ligne 4.

Par cas intermédiaire, j'entends début ou fin du contrat dans le mois.
Je ne traiterai pas le cas (qu'on peut considérer comme inintéressant) où le contrat commencerait et finirait dans le mois.

=SI( OU(Fin<DMois ; Début>FMois) ; 0 ; SI( ET(Début<=DMois ; Fin>=FMois) ; 1 ; SI(FMois>=Fin ; Fin-DMois+1 ; FMois-Début+1) / NbJ) )

Je rappelle que les espaces à l'intérieur de la formule n'ont aucun rôle : il s'agit seulement ici de faciliter la lecture !

Et d'après mes tests, cette formule marche ... https://www.cjoint.com/?crfL4Ls0TO

Ton avis ?
0
niro92
 
Hello raymond !

Un grand merci pour ta réponse. Ce week end de Saint Valentin, j'ai été étreint amoureusement par la Grippe et j'en suis encore tout fiévreux... d'où ma réponse très tardive..

Je regarde avec beaucoup plus d'attention ta réponse et je reviens vers toi.

Encore merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Ne t'essouffle pas Raymond, la réponse est surement en route !
0
niro92 Messages postés 5 Statut Membre 1
 
Merci beaucoup Raymond !

Ca marche impeccable...
Je suis totalement novice sur la fonction "si" et tu m'as terriblement dépané..
Je voudrais abuser de la gentillesse d'un retraité (sous le soleil des Antilles en plus, quelle honte !!) et revenir sur le cas que tu as volontairement écarté : celui du salarié qui entre et sort le même mois..
Est-il possible d'intégrer dans la formule des conditions qui tiennent compte de la présence d'un salarié qui entrerait et sortirait un même mois (c'est le cas du cdd qui entre le lundi 02 février et qui sort le vendredi 27 fév) ?

Je vais essayer (avec mes maigres connaissances) d'intégrer cette autre condition....
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 398
 
Sacré niro92 : je m'y attendais !

Il m'a fallu reprendre toute la logique de tests et essayer divers ordinogrammes pour aboutir à une formule qui ne soit pas une usine à gaz.
Tu verras qu'elle ne comporte plus ni ET ni OU :

=SI ( Fin<DMois ; 0 ; SI ( Fin<=FMois ; SI ( Début<=DMois ; (Fin-DMois+1)/NbJ ; (Fin-Début+1)/NbJ) ; SI ( Début<=DMois ; 1 ; SI ( Début<FMois ; (FMois-Début+1)/NbJ ; 0 ) ) ) )

J'ai testé les différentes valeurs limites, mais il vaut mieux que tu contrôles aussi ; on ne sait jamais !

https://www.cjoint.com/?csx3QQ6G4V
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 398
 
Sacré niro92 ! Je me doutais que tu allais me faire ce coup-là !

Il m'a donc fallu me remettre à l'ouvrage et réaliser plein de logigrammes et de petis dessins, pour étudier tous les cas de figure, et constituer une logique de tests la moins complexe possible.
Cela m'a conduit, non pas à insérer une ou deux conditions à l'intérieur de ma formule précédente, mais à en concevoir une nouvelle, dans laquelle je n'ai plus ni ET ni OU :

=SI ( Fin<DMois ; 0 ; SI ( Fin<=FMois ; SI (Début<=DMois ; (Fin-DMois+1)/NbJ ; (Fin-Début+1)/NbJ) ; SI ( Début<=DMois ; 1 ; SI ( Début<FMois ; (FMois-Début+1)/NbJ ; 0 ) ) ) )

https://www.cjoint.com/?csxTteNzd5Revérifie quand même, on ne sait jamais !--
C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour Raymond,
J'ai mis ton exemple dans mes archives.
Merci, je ne connaissais pas cette manière de comparaison avec les dates.
Depuis se matin il y a environ 10 cm de soleil qui transpire .... neige.
Bonne semaine.
0
niro92 Messages postés 5 Statut Membre 1
 
Hello Raymond !

Ca marche trèèèès bien : un grand merci. Grâce à ton aide, le problème soulevé est désormais bel et bien résolu*.
Si certains sont sous le soleil..., d'autres (et c'est mon cas) vont se dégourdir prochainement sur les pistes enneigées de nos belles Alpes... ;-)

A très bientôt

niro92

* je ne sais pas qui coche la case : "résolu".
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 398
 
Tant mieux, que ça te convienne.

Depuis que tu es inscrit comme membre, tu peux toi-même cocher la case "Résolu" !

Et à la prochaine ...
0