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
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
 

Pièces jointes

  • exemple.xlsx
    14.2 KB · Affichages: 28

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)
 

Discussions similaires

Réponses
0
Affichages
141
Réponses
11
Affichages
473
Réponses
15
Affichages
355
Réponses
13
Affichages
501