Formule Excel MAX IF pour trouver la plus grande valeur avec des conditions

  • Partage Ça
Michael Brown

L'article montre plusieurs façons différentes d'obtenir la valeur maximale dans Excel sur la base d'une ou plusieurs conditions que vous spécifiez.

Dans notre précédent tutoriel, nous avons examiné les utilisations courantes de la fonction MAX, qui est conçue pour renvoyer le plus grand nombre dans un ensemble de données. Dans certaines situations, cependant, vous pouvez avoir besoin d'approfondir vos données pour trouver la valeur maximale en fonction de certains critères. Cela peut être fait en utilisant quelques formules différentes, et cet article explique toutes les façons possibles.

    Formule Excel MAX IF

    Jusqu'à récemment, Microsoft Excel n'avait pas de fonction IF MAX intégrée pour obtenir la valeur maximale en fonction de conditions. Avec l'introduction de MAXIFS dans Excel 2019, nous pouvons faire des max conditionnels d'une manière facile.

    Dans Excel 2016 et les versions antérieures, vous devez toujours créer vos propres formule matricielle en combinant la fonction MAX avec une instruction IF :

    {=MAX(IF( critères_plage = critères , max_range ))}

    Pour voir comment cette formule générique MAX IF fonctionne sur des données réelles, prenez l'exemple suivant. Supposons que vous disposiez d'un tableau contenant les résultats de plusieurs étudiants en saut en longueur. Le tableau comprend les données pour trois tours, et vous recherchez le meilleur résultat d'un athlète particulier, disons Jacob. Avec les noms des étudiants dans A2:A10 et les distances dans C2:C10, la formule prend cette forme :

    =MAX(IF(A2:A10="Jacob", C2:C10))

    Gardez à l'esprit qu'une formule de tableau doit toujours être saisie en appuyant simultanément sur les touches Ctrl + Shift + Enter. Par conséquent, elle est automatiquement entourée de crochets comme indiqué dans la capture d'écran ci-dessous (taper les crochets manuellement ne fonctionnera pas !).

    Dans les feuilles de calcul réelles, il est plus pratique de saisir le critère dans une cellule, de sorte que vous puissiez facilement modifier la condition sans changer la formule. Ainsi, nous saisissons le nom souhaité dans F1 et obtenons le résultat suivant :

    =MAX(IF(A2:A10=F1, C2:C10))

    Comment fonctionne cette formule

    Dans le test logique de la fonction IF, nous comparons la liste de noms (A2:A10) avec le nom cible (F1). Le résultat de cette opération est un tableau de VRAI et de FAUX, où les valeurs VRAIES représentent les noms qui correspondent au nom cible (Jacob) :

    {FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}

    Pour le valeur_ si_vrai nous fournissons les résultats du saut en longueur (C2:C10), de sorte que si le test logique donne VRAI, le nombre correspondant de la colonne C est renvoyé. valeur_ if_false est omis, la signification aura juste une valeur FALSE lorsque la condition n'est pas remplie :

    {FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}

    Ce tableau est transmis à la fonction MAX, qui renvoie le nombre maximum en ignorant les valeurs FALSE.

    Conseil : pour voir les tableaux internes décrits ci-dessus, sélectionnez la partie correspondante de la formule dans votre feuille de calcul et appuyez sur la touche F9. Pour quitter le mode d'évaluation de la formule, appuyez sur la touche Echap.

    Formule MAX IF avec plusieurs critères

    Si vous devez trouver la valeur maximale en fonction de plusieurs conditions, vous pouvez choisir l'une des deux options suivantes :

    Utilisez des instructions IF imbriquées pour inclure des critères supplémentaires :

    {=MAX(IF( critères_gamme1 = critères1 , IF( critères_gamme2 = critères2 , max_range )))}

    Vous pouvez également traiter plusieurs critères en utilisant l'opération de multiplication :

    {=MAX(SI(( critères_gamme1 = critères1 ) * ( critères_gamme2 = critères2 ), max_range ))}

    Supposons que vous ayez les résultats des garçons et des filles dans un seul tableau et que vous souhaitiez trouver le saut le plus long parmi les filles au tour 3. Pour ce faire, nous entrons le premier critère (femme) dans G1, le second critère (3) dans G2, et utilisons les formules suivantes pour calculer la valeur maximale :

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16))))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    Comme il s'agit de deux formules de type tableau, n'oubliez pas d'appuyer sur Ctrl + Shift + Enter pour les compléter correctement.

    Comme le montre la capture d'écran ci-dessous, les deux formules produisent le même résultat. Le choix de la formule à utiliser est donc une question de préférence personnelle. Pour moi, la formule avec la logique booléenne est plus facile à lire et à construire - elle permet d'ajouter autant de conditions que vous le souhaitez sans avoir à imbriquer des fonctions IF supplémentaires.

    Comment fonctionnent ces formules

    La première formule utilise deux fonctions IF imbriquées pour évaluer deux critères. Dans le test logique de la première instruction IF, nous comparons les valeurs de la colonne Sexe (B2:B16) au critère de G1 ("Femme"). Le résultat est un tableau de valeurs VRAI et FAUX où VRAI représente les données qui correspondent au critère :

    {FALSE ; FALSE ; FALSE ; TRUE ; TRUE ; TRUE ; FALSE ; FALSE ; FALSE ; FALSE ; FALSE ; FALSE ; TRUE ; TRUE ; TRUE ; TRUE ; TRUE}

    De la même manière, la deuxième fonction IF vérifie les valeurs de la colonne Ronde (C2:C16) par rapport au critère de G2.

    Pour le valeur_si_vrai dans la deuxième instruction IF, nous fournissons les résultats du saut en longueur (D2:D16), et de cette façon nous obtenons les éléments qui ont VRAI dans les deux premiers tableaux dans les positions correspondantes (c'est-à-dire les éléments où le sexe est "féminin" et le tour est 3) :

    {FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; 4.63 ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; FAUX ; 4.52}

    Ce tableau final est envoyé à la fonction MAX qui renvoie le plus grand nombre.

    La deuxième formule évalue les mêmes conditions dans un seul test logique et l'opération de multiplication fonctionne comme l'opérateur AND :

    Lorsque les valeurs VRAI et FAUX sont utilisées dans une opération arithmétique, elles sont converties respectivement en 1 et en 0. Et comme la multiplication par 0 donne toujours zéro, le tableau résultant n'a 1 que lorsque toutes les conditions sont VRAIES. Ce tableau est évalué dans le test logique de la fonction IF, qui renvoie les distances correspondant aux éléments 1 (VRAI).

    MAX IF sans tableau

    Heureusement, Microsoft Excel dispose de quelques fonctions qui gèrent les tableaux de manière native, et nous pouvons utiliser l'une de ces fonctions, à savoir SUMPRODUCT, comme une sorte d'"enveloppe" autour de MAX.

    La formule générique MAX IF sans tableau est la suivante :

    =SUMPRODUIT(MAX(( critères_gamme1 = critères1 ) * ( critères_gamme2 = critères2 ) * max_range ))

    Naturellement, vous pouvez ajouter d'autres paires gamme/critères si nécessaire.

    Pour voir la formule en action, nous allons utiliser les données de l'exemple précédent. L'objectif est d'obtenir le saut maximum d'une athlète féminine au troisième tour :

    =SUMPRODUIT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    Cette formule est concurrencée par une frappe normale de la touche Entrée et renvoie le même résultat que la formule IF MAX du tableau :

    En regardant de plus près la capture d'écran ci-dessus, vous pouvez remarquer que les sauts invalides marqués d'un "x" dans les exemples précédents ont maintenant des valeurs 0 dans les lignes 3, 11 et 15, et la section suivante explique pourquoi.

    Comment fonctionne cette formule

    Comme avec la formule MAX IF, nous évaluons deux critères en comparant chaque valeur des colonnes Gender (B2:B16) et Round (C2:C16) avec les critères des cellules G1 et G2. Il en résulte deux tableaux de valeurs TRUE et FALSE. La multiplication des éléments des tableaux aux mêmes positions convertit TRUE et FALSE en 1 et 0, respectivement, où 1 représente les éléments qui répondent aux deux critères. Le troisième élément multipliéLe tableau contient les résultats du saut en longueur (D2:D16). Et comme la multiplication par 0 donne zéro, seuls les éléments qui ont 1 (VRAI) dans les positions correspondantes survivent :

    {0 ; 0 ; 0 ; 0 ; 0 ; 4.63 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 4.52}

    En cas max_range contient une valeur textuelle quelconque, l'opération de multiplication renvoie l'erreur #VALUE, ce qui fait que la formule entière ne fonctionnera pas.

    La fonction MAX prend le relais et renvoie le plus grand nombre qui remplit les conditions spécifiées. Le tableau résultant, composé d'un seul élément {4.63}, est transmis à la fonction SUMPRODUCT et produit le nombre maximal dans une cellule.

    Remarque : en raison de sa logique spécifique, cette formule fonctionne avec les réserves suivantes :

    • La plage dans laquelle vous recherchez la valeur la plus élevée ne doit contenir que des chiffres. S'il y a des valeurs de texte, une erreur #VALUE ! est renvoyée.
    • La formule ne peut pas évaluer la condition "non égal à zéro" dans un ensemble de données négatives. Pour trouver la valeur maximale en ignorant les zéros, utilisez une formule MAX IF ou la fonction MAXIFS.

    Formule Excel MAX IF avec logique OR

    Pour trouver la valeur maximale lorsque tout des conditions spécifiées est remplie, utilisez la formule IF du tableau MAX déjà connue avec la logique booléenne, mais additionnez les conditions au lieu de les multiplier.

    {=MAX(SI(( critères_gamme1 = critères1 ) + ( critères_gamme2 = critères2 ), max_range ))}

    Vous pouvez également utiliser la formule suivante, qui n'est pas un tableau :

    =SUMPRODUIT(MAX((( critères_gamme1 = critères1 ) + ( critères_gamme2 = critères2 )) * max_range ))

    À titre d'exemple, déterminons le meilleur résultat dans les tours 2 et 3. Veuillez noter que dans le langage Excel, la tâche est formulée différemment : renvoyer la valeur maximale si le tour est soit 2 soit 3.

    Avec les tours énumérés en B2:B10, les résultats en C2:C10 et les critères en F1 et H1, la formule est la suivante :

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))

    Entrez la formule en appuyant sur la combinaison de touches Ctrl + Shift + Enter et vous obtiendrez ce résultat :

    La valeur maximale dans les mêmes conditions peut également être trouvée en utilisant cette formule hors tableau :

    =SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

    Cependant, nous devons remplacer toutes les valeurs "x" de la colonne C par des zéros dans ce cas, car SUMPRODUCT MAX ne fonctionne qu'avec des données numériques :

    Comment fonctionnent ces formules

    La formule de tableau fonctionne exactement de la même manière que MAX IF avec la logique AND, sauf que vous joignez les critères en utilisant l'opération d'addition au lieu de la multiplication. Dans les formules de tableau, l'addition fonctionne comme l'opérateur OR :

    En additionnant deux tableaux de VRAI et de FAUX (qui résultent de la vérification des valeurs de B2:B10 par rapport aux critères de F1 et H1), on obtient un tableau de 1 et de 0 où 1 représente les éléments pour lesquels l'une ou l'autre des conditions est VRAIE et 0 les éléments pour lesquels les deux conditions sont FAUSSES. valeur_si_vrai ) pour lesquels une condition quelconque est VRAIE (1) ; les éléments restants sont remplacés par FAUX parce que l'élément valeur_si_false n'est pas spécifié.

    La formule hors tableau fonctionne de manière similaire. La différence est qu'au lieu du test logique de IF, vous multipliez les éléments du tableau des 1 et des 0 par les éléments du tableau des résultats du saut en longueur (C2:C10) dans les positions correspondantes. Cela annule les éléments qui ne remplissent aucune condition (ont 0 dans le premier tableau) et conserve les éléments qui remplissent une des conditions (ont 1 dans le premier tableau).).

    MAXIFS - un moyen facile de trouver la valeur la plus élevée avec des conditions

    Les utilisateurs d'Excel 2019, 2021 et Excel 365 n'ont plus à apprivoiser les tableaux pour construire leur propre formule MAX IF. Ces versions d'Excel fournissent la fonction MAXIFS tant attendue qui fait de la recherche de la plus grande valeur avec des conditions un jeu d'enfant.

    Dans le premier argument de MAXIFS, vous entrez la plage dans laquelle la valeur maximale doit être trouvée (D2:D16 dans notre cas), et dans les arguments suivants, vous pouvez entrer jusqu'à 126 paires plage/critère. Par exemple :

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    Comme le montre la capture d'écran ci-dessous, cette formule simple n'a aucun problème à traiter la plage contenant à la fois des valeurs numériques et textuelles :

    Pour des informations détaillées sur cette fonction, veuillez consulter la fonction Excel MAXIFS avec des exemples de formules.

    C'est ainsi que vous pouvez trouver la valeur maximale avec des conditions dans Excel. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Exemples de formules Excel MAX IF (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.