Formule Excel: somme par jour de la semaine -

Table des matières

Formule générique

=SUMPRODUCT((WEEKDAY(dates)=day_num)*values)

Sommaire

Pour additionner les données par jour de la semaine (c'est-à-dire la somme des lundis, mardis, mercredis, etc.), vous pouvez utiliser la fonction SUMPRODUCT avec la fonction WEEKDAY.

Dans l'exemple illustré, la formule en H4 est:

=SUMPRODUCT((WEEKDAY(dates,2)=G4)*amts)

Explication

Vous vous demandez peut-être pourquoi nous n'utilisons pas la fonction SUMIF ou SUMIFS? Celles-ci semblent être une manière évidente de faire la somme des jours de la semaine. Toutefois, sans ajouter une colonne d'assistance avec une valeur de jour de la semaine, il n'existe aucun moyen de créer un critère pour SUMIF qui prend en compte le jour de la semaine.

Au lieu de cela, nous utilisons la fonction pratique SUMPRODUCT, qui gère les tableaux avec élégance sans avoir besoin d'utiliser Ctrl + Maj + Entrée.

Nous utilisons SUMPRODUCT avec un seul argument, qui consiste en cette expression:

(WEEKDAY(dates,2)=G4)*amts

Travaillant de l'intérieur vers l'extérieur, la fonction WEEKDAY est configurée avec l'argument facultatif 2, ce qui l'amène à renvoyer les numéros 1 à 7 pour les jours du lundi au dimanche, respectivement. Ce n'est pas nécessaire, mais cela facilite la liste des jours dans l'ordre et la sélection des nombres dans la colonne G dans l'ordre.

WEEKDAY évalue chaque valeur dans la plage nommée «dates» et renvoie un nombre. Le résultat est un tableau comme celui-ci:

(3; 5; 3; 1; 2; 2; 4; 2)

Les nombres renvoyés par WEEKDAY sont ensuite comparés à la valeur dans G4, qui est 1.

(3; 5; 3; 1; 2; 2; 4; 2) = 1

Le résultat est un tableau de valeurs TRUE / FALSE.

(FAUX; FAUX; FAUX; VRAI; FAUX; FAUX; FAUX; FAUX)

Ensuite, ce tableau est multiplié par les valeurs de la plage nommée «amts». SUMPRODUCT ne fonctionne qu'avec des nombres (pas du texte ou des booléens) mais les opérations mathématiques contraignent automatiquement les valeurs TRUE / FALSE à un et à des zéros, nous avons donc:

(0; 0; 0; 1; 0; 0; 0; 0) * (100; 250; 75; 275; 250; 100; 300; 125)

Ce qui donne:

(0; 0; 0; 275; 0; 0; 0; 0)

Avec seulement ce tableau unique à traiter, SUMPRODUCT additionne les éléments et renvoie le résultat.

Articles intéressants...