Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Stephdeumonac

XLDnaute Nouveau
Bonjour,

Je cherche à obtenir la répartition mensuelle du nombre de jours entre deux dates.
Après plusieurs recherches sur les forums, j'ai réussi à trouver les formules que ce soit pour obtenir la répartition en jours ouvrés ou en jours calendaires. Je cherche à présent à cumuler ces deux options de calcul en fonction d’un paramètre :

Si le type de contrat est « C » => il faut calculer le nombre de jours calendaires entre deux dates
Si le type de contrat est « S » => il faut calculer le nombre de jours ouvrés entre deux dates

Mon fichier est composé avec les entêtes suivantes :

A1 = type de contrat (C ou S)
B1 = Date début contrat
C1 = Date fin contrat
Ensuite la répartition par mois (format date 01/01/2014 ; 01/02/214 ect…) :
D1 = janvier
E1 = février
Ect…

Et sur la ligne 2 les données.


Voici les formules que j’utilise :
Formule a pour la répartition en jours calendaires (pour un contrat type C)
En D2 =SI(OU($C2<D$1;$B2>E$1-1);0;MIN($C2;E$1-1)-MAX($B2;D$1)+1)

Formule b pour la répartition en jours ouvrés (contrat type S)

En D2 =MAX(0;NB.JOURS.OUVRES(MAX($B2;D$1);MIN($C2;E$1)))


Pourriez-vous m’aider pour :

- cumuler les 2 formules en fonction du type de contrat :
Si A2= « C » alors formule a ; si a2 = « S » ; formule b

- Simplifier la formule des jours calendaires car je pense que cela est possible (en utilisant MAX et MIN) mais j’ai toujours une erreur:/



Ça ne me semble pourtant pas compliqué mais j’avoue que je sèche lamentablement et que j’ai toujours une erreur renvoyée

Encore merci pour votre aide
 

JBOBO

XLDnaute Accro
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Bonjour,

Pour la simplification je ne sais pas mais pour l'assemblage des 2 formules cela donne en D2 :
=SI($A2="c";SI(OU($C2<D$1;$B2>E$1-1);0;MIN($C2;E$1-1)-MAX($B2;D$1)+1);SI($A2="s";MAX(0;NB.JOURS.OUVRES(MAX($B2;D$1);MIN($C2;E$1)));""))
 

JBARBE

XLDnaute Barbatruc
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

bonjour à tous,

A essayer en D2 avec quand même un problème avec les fériés :

Code:
=SI(A2="C";DATEDIF(B2;C2;"d")+1;SI(A2="S";NB.JOURS.OUVRES(B2;C2);""))
 
Dernière édition:

Stephdeumonac

XLDnaute Nouveau
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Jbobo : c'est parfait, ça fonctionne !

JBARBE : pas de soucis pour les fériés car nous ne les comptons pas. Par contre la formule ne répartie pas par mois

Encore merci.
 

Stephdeumonac

XLDnaute Nouveau
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Bonjour,

Je reviens vers vous car j'ai une petit souci avec ma formule

=SI($A2="c";SI(OU($C2<D$1;$B2>E$1-1);0;MIN($C2;E$1-1)-MAX($B2;D$1)+1);SI($A2="s";MAX(0;NB.JOURS.OUVRES(M AX($B2;D$1);MIN($C2;E$1)));""))

Pour le type "S" c'est à dire qui calcule le nombre de jours ouvrés et fait la répartition mensuelle, lorsque le 1er jour est le 1er du mois, le décompte est faux :

Par exemple : calcul du nb de jours ouvrés entre le 01/07/2014 et 31/08/2014 j'obtiens
juin : 1
juillet : 24
Aout : 21

Il y a donc un jour qui compte sur juin alors que la date de début est le 1er juillet.

Savez vous comment corriger cette erreur ?

Merci pour votre aide
 

Victor21

XLDnaute Barbatruc
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Bonjour.

Avec en D11, les dates du premier jour de chaque mois (1/1/2013, 1/2/2013...1/1/2014), essayez :
=($A2="C")*($C2>=D$1)*($B2<=E$1-1)*(MIN($C2;E$1-1)-MAX($B2;D$1)+1)
+($A2="s")*MAX(0;NB.JOURS.OUVRES(MAX($B2;D$1);MIN($C2;E$1-1)))
 

Stephdeumonac

XLDnaute Nouveau
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Bonjour Victor,

Votre formule évite effectivement de compter 1 jour sur le mois précédent le début de la période (en juin pour l'exemple), mais cela enlève également un jour ouvré sur tous les autres mois.
 
Dernière édition:

Stephdeumonac

XLDnaute Nouveau
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Voici le fichier

La ligne 4 correspond à la formule initiale pour le type "C" en jours calendaires => la formule fonctionne

La ligne 5 correspond à la formule initiale pour le type "s" en jours ouvrés => la formule rajoute un jour en juin lorsque la période commence le 1er juillet

La ligne 6 correspond à la nouvelle formule proposée par Victor : avec le Type S (jours ouvrés) il n'y a plus le jour compté en trop sur juin, mais un jour est également enlevé sur juillet et aout.

Pour info en juillet 2014 il y a 24 jours ouvrés, et en août 21

Encore merci
 

Pièces jointes

  • repartition mois.xlsx
    12.6 KB · Affichages: 109

Victor21

XLDnaute Barbatruc
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Re,

Pour info en juillet 2014 il y a 24 jours ouvrés
Vous êtes sûr ?

Essayez en D4, à recopier vers la droite et vers le bas:
=($A4="C")*($C4>=D$3)*($B4<=E$3-1)*(MIN($C4;E$3-1)-MAX($B4;D$3)+1)+($A4="s")*MAX(0;NB.JOURS.OUVRES(MAX($B4;D$3);MIN( $C4;E$3-1);feries))
(la zone nommée feries avec les dates des jours fériés de 2014)
 

Stephdeumonac

XLDnaute Nouveau
Re : Répartition mensuelle nb jours : Simplification formule et cumul de conditions

Bonjour,

Encore merci pour votre aide Patrick :jap:
Il y a bien 24 jours ouvrés en juillet 2014 car nous travaillons les jours fériés, j'ai oublié de le préciser

Avec cette dernière formule j'ai toujours un jour de moins sur juillet (23 jours) :/
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…