Plage horaire et calcul/soustraction de créneaux

Bonjour à tous,

Je me retrouve avec une problématique de calcul concernant le traitement de données issues d'un logiciel de traitement de temps de travail. Après recherche sur le forum je n'ai pas trouvé solution.

L'objectif principal est d'afficher l'effectif de personnels disponibles sur l'ensemble d'un département répartis sur plusieurs lieux de travail. Organisés principalement en gardes de 24h ou 12h diurnes et nocturnes, certains agents sont par nécessité sur des créneaux de garde modulaires. Il convient pour autant de les traiter en gardes soit diurne soit nocturne.

J'ai besoin d'aide afin d'écrire une formule permettant de définir le nombre d'heures effectuées sur créneaux diurne et nocturne sachant qu'une garde peut commencer durant la période diurne (7h-19h) et se terminer dans la période nocturne (19h-7h). Une garde de 12h effectuée en période diurne devant décompter 1, 4h effectuées sur la même période devra décompter 0,3.

Ma lecture est qu'il serait nécessaire dans un premier temps de sectionner en périodes de travail allant de 00h00 à 7h00; 7h00 à 19h00 et 19h00 à 00h00.

Pour finir les gardes créneaux seront concaténées afin de pouvoir être additionnées dans les tableaux récapitulatifs.

Ci joint un fichier d'exemple avec un début de travail.

Merci d'avance pour vos éclaircissements

Bonjour

J'ai tout remis en dates et heures et adapté les formules + 1 MCF

Merci, pour autant j'entrevois encore quelques valeurs en erreur. Est-ce que j'ai loupé quelque chose?

Juste je me permet de te demander si tu peux me détailler le calcul afin de pouvoir reproduire en pleine compréhension?

Si je comprend bien l'écriture 7/24 correspond à la valeur de l'heure = à 7h?

L'arrondi permet de ne ressortir que les heures sans être pour autant en textuel?

Le fait de faire sinon = 0 est-il obligatoire à la différence de sinon ="" plus lisible?

Les colonnes 'DE' et 'A' correspondent à un inser de données auto depuis une base SQL, j'ai donc doublé les colonnes avec un arrondi.

En tout cas un encore grand merci pour la réactivité!!!

Bonjour

Oui j'ai du écraser un truc dans la formule avant de poster ou mal testé

=MAX(SI(ET([@PERIODE]="creneau";[@DE]>=7/24;[@A]<=19/24);MIN(19/24;[@A]+SI([@A]<[@DE];1;0))-[@DE];0);0)

Avec MAX on ne peut utiliser "".
J'avais mis une MFC pour masquer les 0 en bas : la modifier en

=OU($I2<>"Creneau";L2=0)

De façon générale mélanger texte et nombres finit toujours par poser problème, ce pourquoi j'évite même quand je pourrais

ça me paraît plus clair; "Mais" ça paraît plus complexe... il y a une problématique avec l'heure 19:00 entre le <= et < je pense; ça ne permet pas de collecter les bons créneaux jour nuit dès que l'heure de fin est = à 19h mais également dès qu'une garde commence avant 7h (qui devrait d'ailleurs compter normalement pour le créneaux ce la veille; je pense que je traiterais ça après coup).

J'ai tenté en ajoutant une condition mais sans succès:

=SI(ET([@DE]=7/24;[@A]=19/24);12/24;MAX(SI(ET([@PERIODE]="creneau";[@DE]>=7/24;[@A]<=19/24);MIN(19/24;[@A]+SI([@A]<[@DE];1;0))-[@DE];0);0))

Je me demande vraiment s'il ne faut pas définir 3 créneaux horaires 00:00 à 7:00; 7:00 à 19h00; 19h00 à 00h00 ... pour exemple la garde du 24/07 par exemple étant effectif de 7h le 24/07 à 7h le 5/07.

sinon c'est bien pris pour le textuel je mais m'attacher à faire comme ça!

Rechercher des sujets similaires à "plage horaire calcul soustraction creneaux"