employés present entre 2 dates

Timoth'

XLDnaute Nouveau
Bonjour,
sur un tableau regroupant l'ensemble des salariés présent dans l'entreprise, je cherche à trouver le nombre de salariés présent entre 2 dates.
Le problème est que comme données de date je n'ai que la date de début de contrat et la date de fin de contrat.
Pour les salariés toujours en contrat je n'ai donc pas de date de sortie.
est ce possible et comment?
merci beaucoup pour votre aide.
 

chris

XLDnaute Barbatruc
Bonjour
Oui avec un SI on peut tester la date de fin et la considérer comme ta date limite.

Il faudrait plus de détails pour te donner une formule précise.

Utilises-tu actuellement NB.SI, SOMMPROD ou autre
 

chris

XLDnaute Barbatruc
Re

Pour ceux qui étaient là durant toute la période
Code:
=SOMMEPROD((B3:B15<=C17)*((C3:C15>=E17)+(C3:C15="")))
Si présence partielle
Code:
=SOMME(SI((SI(C3:C15="";$E$17;C3:C15)-SI(B3:B15<$C$17;$C$17;B3:B15))>0;1;0))
en matriciel donc à valider par Ctrl Shift Entrée
 
Dernière édition:

Timoth'

XLDnaute Nouveau
merci beaucoup pour la réponse.
mais cela m’enlève totalement les personne qui ne sont pas présentes sur l'ensemble de la période. hors elles étaient bien présente a un moment
autre problème, j'aimerais connaitre le temps de présence global sur la période indiqué.
ci joint le tableau complete
 

Fichiers joints

chris

XLDnaute Barbatruc
Bonjour

La seconde formule tient tient compte d'une présence sur une partie de la période, l'as-tu essayée ?
 

Timoth'

XLDnaute Nouveau
merci pour vos réponses.
j'ai tester l'ensemble des solutions mais aucune ne fonctionne vraiment.
je cherche toujours de mon coté...
au cas où, j'utilise XL 2016
 

chris

XLDnaute Barbatruc
Re à tous

Concernant les présents sur une partie de la période, les diverses solutions donnent 13 : tu comptes en trouver combien et si différent de 13 explique ta logique sinon on en sera encore au même point à Noël car "aucune ne fonctionne vraiment" ne signifie pas grand chose...
 

Timoth'

XLDnaute Nouveau
en fait la formule matricielle fonctionne sauf dans le cas où une personne arrive après la période demandée (elle est comptée).
j'ai essayé de bidouiller la formule mais je n'y arrive pas.
concernant le temps passé c'est bon.
merci pour vos réponses.
 

chris

XLDnaute Barbatruc
Re

Tu as une personne arrivée le 8/1/2018 dont avant le fin de période qui est comptée
Si on la fait arriver le 1/5 elle n'est plus comptée.

J'ai testé d'autres dates cela semble fonctionner.

Peux-tu donner des exemples d'anomalie STP.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Un truc n'est pas clair pour moi: la date de sortie c'est bien celle du 1er jour où il n'est plus là ou bien celle du dernier où il y est encore ?
En attendant j'ai écrit cette fonction :
VB:
Function NbPrésents(ByVal Déb As Date, ByVal Fin As Double, ByVal RngES As Range) As Long
Dim TES(), L As Long, Ent As Date, Sor As Date
TES = RngES.Value
For L = 1 To UBound(TES)
   Ent = TES(L, 1): If Ent < Déb Then Ent = Déb
   If VarType(TES(L, 2)) = vbDate Then
      Sor = TES(L, 2): If Sor > Déb Then Sor = Fin
   Else: Sor = Fin: End If
   NbPrésents = NbPrésents - (Sor >= Ent): Next L
End Function
Code:
=NbPrésents($C$18;$E$18;$B$3:$C$15)
 

Victor21

XLDnaute Barbatruc
Bonjour, Dranreb.
Un truc n'est pas clair pour moi: la date de sortie c'est bien celle du 1er jour où il n'est plus là ou bien celle du dernier où il y est encore ?
Si je puis me permettre, pour pouvoir sortir, il faut être dedans.
C'est d'ailleurs ce que je fais ;)
 

Dranreb

XLDnaute Barbatruc
Comprends pas, là.
En tout cas je crois que ma fonction marche en considérant qu'il sort à la fin de la journée spécifiée, donc qu'il y est encore lors de celle ci, et que ce n'est donc en réalité pas une date de sortie mais plutôt de dernier jour de présence.
Un peu comme la période demandée, où c'est plus clair puisqu'on indiquerait 2 mêmes dates pour trouver qui était présent ce jour là, et non une date à partir de, et une autre à ne plus prendre à partir de…
 
Dernière édition:

Discussions similaires


Haut Bas