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 D1:p1, 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 :eek:

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

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16