Synthèse d'info à partir de plages de dates à cheval entre deux mois

Bonjour à tous,

J'ai un besoin sur le fichier ci-joint que je n'arrive pas à traiter.
L'onglet "extract" reprend les jours de vacances (date de début , date de fin et durée) posées par des salariés.

J'aurais besoin de connaitre le nombre de jours de vacances par mois et par salarié.
Mon TDB "Vac par pers et mois" réalise à peu près ce point, à exception qu'il est construit à partir de la date de début et la durée, et ne prend donc pas en compte si les vacances sont posés à cheval entre deux mois. Comment est-ce que je pourrais avoir le nombre réel par mois ?

Je ne sais pas trop comment aborder cette question, avez vous svp des pistes ?
J'ai trouvé des sujets similaires mais je n'arrive pas à l'appliquer à mon fichier.

Merci par avance pour votre aide et bonne journée !

Bonjour

Comment comptes-tu les jours ? En jours ouvrés soit hors samedi, dimanche et JF ?

Bonjour 78chris,

Merci pour ta réponse.

L'extract du logiciel me donne la durée en jours ouvrés, et j'ai besoin des jours ouvrés sur ma synthèse (hors sam, dim, jf).

Bonjour,

Je vous renvoie votre fichier avec la solution demandée, ou enfin un début de solution compte tenu des petits problèmes que j'ai relevés :

- En cas de durée décimale (exemple 8,5 jours de CP), la formule calculant les CP est inutile car elle s'applique sur des journées entières. C'est le cas même si les CP sont pris le même mois.

- La formule ne peut pas prendre en compte les temps partiels. Le fichier est relativement bien pour des temps plein mais dès lors qu'un salarié est à temps partiel, il est compliqué de gérer ses jours de repos hors congé.

- Il faut s'attarder un petit peu sur la question des jours fériés car j'ai vu que des congés avaient été pris le 1er juin, qui est a priori férié. Il faut donc modifier selon les pratiques de l'entreprise la liste à droite du tableau d'import de l'extraction.

Pour votre compréhension, la formule de base est :

=NB.JOURS.OUVRES(DATE_DEPART;DATE_RETOUR;LISTE_JOURS_FERIES)

Afin de répartir sur tous les mois (les 12) les congés qui leur sont propres, j'ai remplacé les 2 dates par :

MAX(DATE_DEPART;DEBUT_MOIS)   et  MIN(DATE_RETOUR;FIN_MOIS)

L'idéal serait quand même d'avoir une extraction plus appropriée, qui donne la répartition de CP en jours ouvrés par mois car ça va s'avérer compliqué, voire impossible de solutionner les cas particuliers.

En tout cas, il y a maintenant la colonne contrôle qui permet d'identifier les cas qui coincent.

Bonjour 3GB,

Merci pour votre aide. Le fichier m'éclaire bien sur la manière de faire le découpage qui me bloquait.
Pour le 1 juin, il s'agit de la journée de solidarité, d'où le fait qu'elle soit travaillé ou prise en congé, j'ai bien fait la modification dans le tableau de droite.

En effet, la base de données n'est pas facile à travailler.
Travailler la donnée en amont est bien souvent un moyen de régler de nombreux problèmes de traitement.
Je vais voir avec le service RH ce qu'ils peuvent m'extraire.

Merci à tous pour vos réponses.

Bonne journée.

En effet, l'idéal serait de clarifier les données en amont pour éviter de bricoler dans tous les sens.

Bonne journée à vous aussi !

Bonjour à tous

Une solution PowerQuery (intégré à Excel) qui m'a donné pas mal de fil à retordre avec des superposition de dates sur plusieurs périodes, des périodes qui contiennent à priori des 1/2 journées puisque la durée est inférieure au nombre de jours de la période...

La requête tient compte des jours fériés dont j'ai exclu le lundi de pentecôte (qui est une date mobile et non fixe car liée à Pâques, et dont l'aspect férié ou non dépend de l'entreprise)

Le TCD est basé sur la requête

Actualiser avec Données, Actualiser Tout

N.B.: a noter que les fonctions ont été fournies par Jean-Eric

Bonjour 78chris,

Merci beaucoup pour ton fichier, c'est exactement ce dont j'avais besoin !

Ta solution m'a donné envie d'étudier Power Query, ça semble être un outil assez puissant et bien plus rapide que ce que je fais à la main.
Est-il possible de retrouver le détail de ta requête sur le fichier que tu m'as transmis ?
Comme ça j'apprendrais à le refaire, ça peut m'être utile.

Merci encore et bonne journée.

Bonjour

Oui tu peux éditer la requête : Données, Obtenir des données, Lancer PowerQuery

Tu as

  • les 2 fonctions servant au calcul des JF/JO (réutilisables dans tout classeur)
  • une requête calendrier qui donne tous les jours ouvrés de la période (je n’arrivai pas au bon résultat sans)
  • la requête absences utilisée par le TCD

les 2 requêtes partent du tableau source (j'aurais pu faire plus léger pour démarrer le calendrier mais cette solution est plus simple à comprendre je pense)

Dans le volet de droite tu as les étapes avec un rouage qui permet de voir le détail de l'action

Regarde et si tu coinces reposte

Bonjour 78chris,

J'ai pris le temps de découvrir les fonctionnalités de Power Query et de décortiquer les actions sur le fichier.
Merci pour le temps que tu as pris à créer ce fichier, ça a dû être assez chronophage et complexe à élaborer ...

Je suis un peu perdue entre les étapes "Ligne groupées 2" dans le fichier des absences. et "Personnalisée développée".
Mes points de blocage principaux tournent principalement autour de "Tabl" :
- Intérêt et fonctionnement de Tabl = Toutes les lignes ? (je n'ai pas trop compris l'aide en ligne sur ce point).
- Comment la création de la colonne Idx "sait" qu'il faut incrémenter en fonction des éléments de groupement précédents ?
- Pourquoi Personnalisée ajoutée2 crée une table Personnalisé et pas simplement la colonne Idx ?

J'ai aussi du mal à comprendre l'ajout ou le traitement de certaines colonnes. En l’occurrence :
- Pourquoi durée = max de durée, puisqu'on avait déjà fait l'étape Lignes groupées où durée devenait la somme des durées ?
- Pourquoi ajouter la colonne fin = max de date, qui correspond en fait simplement à date de fin d'absence déjà écrite ?
- Pourquoi dans Lignes groupées2 ne pas regrouper avec la colonne date en plus, plutôt que de la stocker dans Tabl puis Personnalisé pour la redévelopper ensuite ?

Ca fait beaucoup de questions, mais j'imagine qu'elles se recoupent sur les réponses.
Merci par avance sur le temps que tu pourras m'accorder sur ces explications, et pour tout le temps consacré à ce topic !

Bonne journée à la communauté !

Bonjour

Le regroupement en incluant toutes les lignes permet d'avoir une table imbriquée que l'on peut utiliser
Si tu cliques, juste après l'étape de regroupement, sur une ligne de Tabl, tu vois en bas le détail des lignes du groupe

La création de IDX se base automatiquement sur les autres niveaux de regroupement, donc le groupe, et va permettre de numéroter les lignes de chaque groupe dans une nouvelle colonne de la table imbriquée :
si tu cliques, juste après cette étape, sur une ligne de Personnalisé, tu vois le détail des lignes du groupe (donc la même chose que Tabl) complété de la colonne de numérotation

Les max c'est pour récupérer la valeur sans l'additionner (on a plusieurs lignes par période) et aussi parce qu'il y a des superpositions de périodes donc de dates

C'est ces superpositions qui m'ont pas mal torturé les neurones : j'avais ou trop ou pas assez de jours car on a des périodes dont la durée des congés est inférieure à la durée ouvrée, complétée par d'autres périodes en superposition et c'est ce regroupement qui a fini par donner le bon résultat : avoir le bon nombre de congés sur l'amplitude complète des périodes superposées

Merci pour votre réponse, tout est clair maintenant.

En effet, c'est un drôle de casse-tête (surtout pour un débutant ).
Pour info, cette différence entre les durées indiquées et ouvertes découlent des données RH, qui scindent sur plusieurs lignes la durée ouverte en fonctions du type d'absence (maladie, congés, etc.).

Rechercher des sujets similaires à "synthese info partir plages dates cheval entre deux mois"