Calcul selon des dates sur 3 ans

Bonjour à tous,

Il n'y a rien à faire, je m'en sors pour de nombreux cas mais dès que je dois toucher à des éléments avec des dates, tout s'embrouille !

J'aurais besoin d'aide pour calcule la présence d'effectifs par mois selon une date d'entrée et/ou de sortie sur 3 ans.

Je joins un fichier pour exemple.

Si une personne arrive au 1er janvier 2020 et repart le 31 mars, elle doit être indiqué à 1 sur janvier / février et mars et zéro sur le reste.

Par contre si l'entrée est faite au 15 janvier, ca doit être calculé en fonction du nombre de jours entre le 15 janvier et fin janvier + 1 en février et 1 en mars …

Je bataille avec les fonctions MOIS et DATE mais sans résultat !

Tout aide est la bienvenue.

En vous remerciant par avance.

Valérie

Bonjour,

Je n'ai pas encore ouvert votre fichier, mais ce genre de question est récurrente sur le forum...

Un exemple de sujet déjà traité : https://forum.excel-pratique.com/viewtopic.php?f=2&t=111953

Un test sur votre fichier :

Bonjour et bienvenue,

Peux-tu préciser ta version Excel et la saisir dans ton profil ?

Cdlt.

merci @Pedro22 !

J'avais regardé le lien que tu indiques. Ca correspondait pas vraiment à ce que je cherchais à faire j ai l impression.

En tout cas, ton fichier fonctionne très bien même je ne suis pas du tout à l'aise avec ta formule. Je vais la décomposer pour comprendre.

Merci encore !

@jean-eric, je vais compléter mon profil. Merci.

Salut Jean-Eric,

@valsauvage :

En tout cas, ton fichier fonctionne très bien même je ne suis pas du tout à l'aise avec ta formule. Je vais la décomposer pour comprendre.

Pour t'aiguiller un peu, il faut commencer par s’intéresser aux cas de figure possibles :

  • Pas de date de sortie : l'employé est encore présent à la fin du mois
  • Date de sortie : inférieure au mois en cours = 0 ; dans le mois en cours = au prorata de la durée ; postérieure au mois en cours = l'employé est présent à la fin du mois
  • Date d'entrée : antérieure au mois en cours = l'employé est présent en début de mois ; dans le mois en cours = au prorata de la durée de présence ; postérieure au mois en cours = 0

Opération sur les dates (exemple du 1er cas : Janvier 2019) :

DATEVAL("1 "&L$2&" "&L$1) : Convertie le texte "Janvier 2019" en date valide (01/01/2019)

MOIS.DECALER(DATEVAL("1 "&L$2&" "&L$1);1)-1 : Donne le dernier jour du mois en cours (1er jour du mois + 1 mois - 1 jour)

Les fonctions MIN et MAX servent à départager les dates à prendre, selon les cas des figures énoncés plus haut (exemple : prendre le premier jour du mois si la date d'entrée est antérieure, sinon prendre la date d'entrée si elle est dans le mois en cours).

Rechercher des sujets similaires à "calcul dates ans"