Bonjour,
Une solution pourrait être d’avoir non pas les périodes de fermeture du service mais les périodes d’ouverture (ou alors d’établir un tableau des ouvertures à partir du tableau des fermetures).
Cela reviendrait ensuite à déterminer à l’aide de la fonction NB.JOURS.OUVRES.INTL le nombre du jour choisi de la semaine entre les dates limitant l’intersection de deux périodes : le mois voulu et la période d’ouverture correspondante.
Ce qui est fait ci-dessous dans une feuille appelée Ouverture de services.
![Nom : nb jours semaine.JPG
Affichages : 916
Taille : 46,2 Ko](https://www.developpez.net/forums/attachments/p441416d1547483700/logiciels/microsoft-office/excel/nombres-jours-lundi-mardi-d-mois-precis-periode/nb-jours-semaine.jpg/)
Pour ne pas avoir une formule trop longue à écrire dans les cellules de la matrice B11:M15, on peut commencer par définir deux noms en se plaçant en cellule B11 :
pér_ouv par :
=SIERREUR(EQUIV(FIN.MOIS('Ouvertures de services'!B$9;0);'Ouvertures de services'!$A$3:$C$3);1)
choix_jour par :
=SUBSTITUE("1111111";"1";"0";LIGNES('Ouvertures de services'!$11:11))
Pour l’utilisation du nom pér_ouv dans les futures formules, on peut voir sur l’image ci-dessous qu’à chacun des mois janvier, février, mars … est associée l’une des périodes d’ouverture 1, 1, 2… données dans la matrice A2:C4.
![Nom : périodes d'ouverture.JPG
Affichages : 809
Taille : 37,3 Ko](https://www.developpez.net/forums/attachments/p441420d1547484208/logiciels/microsoft-office/excel/nombres-jours-lundi-mardi-d-mois-precis-periode/periodes-d-ouverture.jpg/)
L’utilisation du nom choix_jour permet de n’écrire qu’une seule formule pour toutes les cellules de la matrice B11:M15 au lieu de changer le troisième paramètre de la fonction NB.JOURS.OUVRES.INTL pour chacune des lignes 11, 12, …, 15.
![Nom : choix jour.JPG
Affichages : 736
Taille : 16,5 Ko](https://www.developpez.net/forums/attachments/p441417d1547483838/logiciels/microsoft-office/excel/nombres-jours-lundi-mardi-d-mois-precis-periode/choix-jour.jpg/)
Les noms pér_ouv et choix_jour ayant été préalablement définis, écrire en B11 la formule :
=MAX(NB.JOURS.OUVRES.INTL(MAX(B$9;RECHERCHEH(pér_ouv;$A$2:$C$4;2));MIN(FIN.MOIS(B$9;0);RECHERCHEH(pér_ouv;$A$2:$C$4;3));choix_jour);0)
et la recopier dans toutes les cellules de la matrice B11:M15.
Si la compréhension de la formule pose problème, lire les explications dans le billet Intersection de deux périodes.
Cordialement
Claude
Partager