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 -
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
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
A voir également:
- Suivi des effectifs
- Suivi des modifications word - Guide
- Suivi colis - Guide
- Suivi position google - Guide
- Historique Google Maps : retrouver tous les lieux et les trajets enregistrés - Guide
- Track718 suivi de commande ✓ - Forum Consommation & Internet
9 réponses
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 ...
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 ...
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 ...
► 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 ...
... 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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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....
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....
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
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
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/?csxTteNzd5 ► Revérifie quand même, on ne sait jamais !--
C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂
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/?csxTteNzd5 ► Revérifie quand même, on ne sait jamais !--
C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂
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".
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".