
Formule générique
=SUMPRODUCT((holidays>=start)*(holidays<=end))
Sommaire
Pour compter les jours fériés qui surviennent entre deux dates, vous pouvez utiliser la fonction SOMMEPROD.
Dans l'exemple illustré, la formule en F8 est:
=SUMPRODUCT((B4:B12>=F5)*(B4:B12<=F6))
Explication
Cette formule utilise deux expressions dans un seul tableau à l'intérieur de la fonction SOMMEPROD.
La première expression teste chaque date de vacances pour voir si elle est supérieure ou égale à la date de début dans F5:
(B4:B12>=F5)
Cela renvoie un tableau de valeurs TRUE / FALSE comme ceci:
(FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; TRUE)
La deuxième expression teste chaque date de vacances pour voir si elle est inférieure ou égale à la date de fin dans F6:
(B4:B12<=F6)
qui renvoie un tableau de valeurs TRUE / FALSE comme ceci:
(TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; FALSE)
La multiplication de ces deux tableaux contraint automatiquement les valeurs TRUE / FALSE à des uns et des zéros, ce qui donne des tableaux qui ressemblent à ceci:
=SUMPRODUCT(((0;0;0;0;1;1;1;1;1))*((1;1;1;1;1;1;1;1;0)))
Après multiplication, nous n'avons qu'un seul tableau comme celui-ci:
=SUMPRODUCT((0;0;0;0;1;1;1;1;0))
Enfin, SUMPRODUCT additionne les éléments du tableau et renvoie 4.
Jours fériés en semaine uniquement
Pour compter les jours fériés qui se produisent uniquement en semaine (du lundi au vendredi), vous pouvez étendre la formule comme suit:
=SUMPRODUCT((rng>=F5)*(rng<=F6)*(WEEKDAY(rng,2)<6))
où rng est une plage contenant des dates de vacances.