Exceller

Compter le jour de la semaine entre les dates

Count Day Week Between Dates

Formule Excel: compter le jour de la semaine entre les datesFormule générique
= SUMPRODUCT (--( WEEKDAY ( ROW ( INDIRECT (start&':'&end)))=dow))
Résumé

Pour compter les jours de la semaine (lundi, vendredi, dimanche, etc.) entre deux dates, vous pouvez utiliser une formule matricielle qui utilise plusieurs fonctions: SUMPRODUCT, WEEKDAY, ROW et INDIRECT. Dans l'exemple illustré, la formule de la cellule E6 est

 
= SUMPRODUCT (--( WEEKDAY ( ROW ( INDIRECT (B6&':'&C6)))=D6))

Dans la version générique de la formule, début = date de début, finir = date de fin, et dow = jour de la semaine.



comment mettre en évidence les doublons dans Excel
Explication

Au fond, cette formule utilise le Fonction WEEKDAY pour tester un certain nombre de dates pour voir si elles atterrissent un jour donné de la semaine (dow) et le Fonction SUMPRODUCT pour additionner le total.



Lorsqu'on lui donne une date, WEEKDAY renvoie simplement un nombre entre 1 et 7 qui correspond à un jour particulier de la semaine. Avec les paramètres par défaut, 1 = dimanche et 7 = samedi. Donc, 2 = lundi, 6 = vendredi, et ainsi de suite.

L'astuce de cette formule est de comprendre que les dates dans Excel ne sont que des numéros de série qui commencent le 1er janvier 1900. Par exemple, le 1er janvier 2016 est le numéro de série 42370 et le 8 janvier est 42377. Les dates dans Excel ne ressemblent qu'à des dates lorsqu'un format de numéro de date est appliqué.



convertir la date en texte dans Excel

Alors, la question devient - comment pouvez-vous construire un déployer de dates que vous pouvez alimenter dans la fonction WEEKDAY pour connaître les jours correspondants de la semaine?

La réponse est d'utiliser RANGÉE avec INDIRECT fonctionne comme ceci:

 
 ROW ( INDIRECT (date1&':'&date2))

INDIRECT permet aux dates concaténées «42370: 42377» d'être interprétées comme des numéros de ligne. Ensuite, la fonction ROW renvoie un tableau comme celui-ci:



 
{4237042371423724237342374423754237642377}

La fonction WEEKDAY évalue ces nombres comme dates et renvoie ce tableau:

 
{67123456}

qui est testé par rapport au jour de la semaine donné (6 dans ce cas, à partir de J6). Une fois les résultats du test convertis en 1 et 0 avec le double tiret, ce tableau est traité par SUMPRODUCT:

 
{10000001}

Ce qui renvoie 2.

Avec SEQUENCE

Avec le nouveau Fonction SEQUENCE , cette formule peut être simplifiée un peu comme ceci:

comment protéger une feuille dans Excel
 
= SUMPRODUCT (--( WEEKDAY ( SEQUENCE (end-start+1,1,start,1))=dow))

Dans cette version, nous utilisons SEQUENCE pour générer directement le tableau des dates, sans avoir besoin d'INDIRECT ou de ROW.

Formules de matrice dynamique sont disponibles en Bureau 365 seul. Auteur Dave Bruns


^