
Formule générique
(=MAX(IF(TEXT(dates,"ddd")="Mon",values)))
Sommaire
Pour trouver la valeur maximale pour un jour de la semaine donné (c'est-à-dire lundi, mardi, mercredi, etc.), vous pouvez utiliser une formule matricielle simple basée sur les fonctions MAX, IF et TEXT. Dans l'exemple illustré, la formule de la cellule F5 est:
=MAX(IF(TEXT(dates,"ddd")=F4,values))
Où les dates (B5: B15) et les valeurs (C5: C15) sont des plages nommées.
Remarque: il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.
Explication
Travaillant de l'intérieur vers l'extérieur, la fonction TEXT est utilisée pour extraire une valeur du jour de la semaine pour chaque date:
=TEXT(dates,"ddd")
Cela donne un tableau comme celui-ci:
("Mon";"Tue";"Wed";"Thu";"Fri";"Mon";"Tue";"Wed";"Thu";"Fri";"Mon")
qui est ensuite comparé au texte en F4, "Mon". Le résultat est un autre tableau, qui contient uniquement les valeurs TRUE et FALSE:
(TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE)
Notez que chaque TRUE correspond à un lundi. Ce tableau est renvoyé dans la fonction IF en tant que test logique. Il agit comme un filtre pour filtrer les valeurs les autres jours de la semaine. Le résultat final de IF, qui est renvoyé directement à la fonction MAX, ressemble à ceci:
=MAX((85;FALSE;FALSE;FALSE;FALSE;94;FALSE;FALSE;FALSE;FALSE;52))
MAX ignore automatiquement les valeurs FALSE et renvoie la valeur restante la plus élevée, 94.
Avec AGGREGATE
Pour une formule légèrement plus geek qui ne nécessite pas de contrôle + Maj + Entrée, vous pouvez utiliser la fonction AGGREGATE comme ceci:
=AGGREGATE(14,6,values/(TEXT(dates,"ddd")=F4),1)
Il s'agit de la formule utilisée dans la cellule F6 dans l'exemple illustré. Ici, nous donnons AGGREGATE 14 pour l'argument de fonction (LARGE) et 6 pour l'argument d'option (ignorer les erreurs). Ensuite, nous construisons une expression logique en utilisant la fonction TEXT pour vérifier toutes les dates du lundi. Le résultat de cette opération est un tableau de valeurs TRUE / FALSE, qui deviennent le dénominateur des valeurs d'origine. Lorsqu'il est utilisé dans une opération mathématique, FALSE est évalué à zéro et lance un # DIV / 0! Erreur. TRUE prend la valeur 1 et renvoie la valeur d'origine. Le tableau final de valeurs et d'erreurs agit comme un filtre. AGGREGATE ignore toutes les erreurs et renvoie la plus grande (maximum) des valeurs restantes.
MAXIFS
La fonction MAXIFS, disponible dans Excel Office 365, peut renvoyer une valeur maximale en utilisant un ou plusieurs critères sans avoir besoin d'une formule matricielle. Cependant, MAXIFS est une fonction basée sur une plage et ne permettra pas à d'autres fonctions comme TEXT de traiter les valeurs dans des plages de critères. Vous pouvez cependant ajouter une colonne d'assistance aux données, générer des valeurs du jour de la semaine avec TEXT, puis utiliser MAXIFS avec la colonne d'assistance comme plage de critères.