Instructions IF imbriquées d'Excel - exemples, meilleures pratiques et alternatives

  • Partage Ça
Michael Brown

Ce tutoriel explique comment utiliser la fonction IF imbriquée dans Excel pour vérifier plusieurs conditions. Vous apprendrez également quelques autres fonctions qui pourraient être de bonnes alternatives à l'utilisation d'une formule imbriquée dans Excel.

Comment implémentez-vous habituellement une logique de prise de décision dans vos feuilles de calcul Excel ? Dans la plupart des cas, vous utilisez une formule IF pour tester votre condition et renvoyer une valeur si la condition est remplie, une autre valeur si elle ne l'est pas. Pour évaluer plusieurs conditions et renvoyer différentes valeurs en fonction des résultats, vous imbriquez plusieurs IF les uns dans les autres.

Bien que très populaire, l'instruction IF imbriquée n'est pas le seul moyen de vérifier plusieurs conditions dans Excel. Dans ce tutoriel, vous trouverez une poignée d'alternatives qui valent vraiment la peine d'être explorées.

    Instruction IF imbriquée dans Excel

    Voici la formule IF imbriquée classique d'Excel sous une forme générique :

    IF( condition1 , résultat1 , IF( condition2 , résultat2 , IF( condition3 , résultat3 , résultat4 )))

    Vous pouvez voir que chaque fonction IF subséquente est incorporée dans la fonction valeur_si_false Chaque fonction IF est entourée de sa propre série de parenthèses, mais toutes les parenthèses fermantes se trouvent à la fin de la formule.

    Notre formule IF générique imbriquée évalue 3 conditions et renvoie 4 résultats différents (le résultat 4 est renvoyé si aucune des conditions n'est VRAIE). Traduite en langage humain, cette instruction IF imbriquée demande à Excel de faire ce qui suit :

    Test condition1 si VRAI - retour résultat1 , si FALSE -

    test condition2 si VRAI - retour de r esult2 , si FALSE -

    test condition3 si VRAI - retour résultat3 , si FALSE -

    retourner résultat4

    À titre d'exemple, trouvons les commissions d'un certain nombre de vendeurs en fonction du nombre de ventes qu'ils ont réalisées :

    Commission Ventes
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Plus de 150 $.

    En mathématiques, changer l'ordre des additions ne modifie pas la somme. Dans Excel, changer l'ordre des fonctions IF modifie le résultat. Pourquoi ? Parce qu'une formule IF imbriquée renvoie une valeur correspondant à l'élément suivant première condition VRAIE Par conséquent, dans vos instructions IF imbriquées, il est très important de disposer les conditions dans le bon sens - de haut en bas ou de bas en haut, selon la logique de votre formule. Dans notre cas, nous vérifions d'abord la condition "la plus élevée", puis la "deuxième plus élevée", et ainsi de suite :

    =IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))".

    Si nous avions placé les conditions dans l'ordre inverse, de bas en haut, les résultats seraient tous faux car notre formule s'arrêterait après le premier test logique (B2>=1) pour toute valeur supérieure à 1. Disons que nous avons 100 $ de ventes - c'est supérieur à 1, donc la formule ne vérifierait pas les autres conditions et renverrait 3 % comme résultat.

    Si vous préférez classer les conditions de bas en haut, utilisez l'opérateur "moins que" et évaluez d'abord la condition "la plus basse", puis la "deuxième plus basse", et ainsi de suite :

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Comme vous le voyez, il faut beaucoup de réflexion pour construire correctement la logique d'une instruction IF imbriquée jusqu'à la fin. Et bien que Microsoft Excel permette d'imbriquer jusqu'à 64 fonctions IF dans une formule, ce n'est pas quelque chose que vous souhaitez vraiment faire dans vos feuilles de calcul. Donc, si vous (ou quelqu'un d'autre) contemplez votre formule IF imbriquée Excel en essayant de comprendre ce qu'elle fait réellement, il est temps dereconsidérer votre stratégie et probablement choisir un autre outil dans votre arsenal.

    Pour plus d'informations, veuillez consulter l'instruction IF imbriquée d'Excel.

    IF imbriqué avec conditions OR/AND

    Si vous devez évaluer plusieurs ensembles de conditions différentes, vous pouvez exprimer ces conditions à l'aide des fonctions OR et AND, imbriquer les fonctions dans des instructions IF, puis imbriquer les instructions IF les unes dans les autres.

    IF imbriqué dans Excel avec des instructions OR

    En utilisant la fonction OR, vous pouvez vérifier deux ou plusieurs conditions différentes dans le test logique de chaque fonction IF et renvoyer VRAI si l'un (au moins) des arguments OR est évalué comme VRAI. Pour voir comment cela fonctionne réellement, veuillez considérer l'exemple suivant.

    Supposons que vous ayez deux colonnes de ventes, disons les ventes de janvier dans la colonne B et les ventes de février dans la colonne C. Vous souhaitez vérifier les chiffres dans les deux colonnes et calculer la commission sur la base d'un chiffre plus élevé. En d'autres termes, vous construisez une formule avec la logique suivante : si les ventes de janvier ou de février sont supérieures à 150 $, le vendeur reçoit une commission de 10 %, si les ventes de janvier ou de février sont supérieures ou égales à101 $, le vendeur reçoit une commission de 7 %, et ainsi de suite.

    Pour ce faire, écrivez quelques instructions OF comme OR(B2>150, C2>150) et imbriquez-les dans les tests logiques des fonctions IF discutées ci-dessus. Vous obtenez ainsi la formule suivante :

    =IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))

    Et que la commission soit attribuée en fonction du montant le plus élevé des ventes :

    Pour plus d'exemples de formules, veuillez consulter l'instruction IF OR d'Excel.

    IF imbriqué dans Excel avec des instructions AND

    Si vos tests logiques comprennent plusieurs conditions et que toutes ces conditions doivent être évaluées comme VRAIES, exprimez-les en utilisant la fonction AND.

    Par exemple, pour attribuer les commissions sur la base d'un nombre inférieur de ventes, reprenez la formule ci-dessus et remplacez les instructions OR par AND. En d'autres termes, vous demandez à Excel de renvoyer 10 % uniquement si les ventes de janvier et février sont supérieures à 150 $, 7 % si les ventes de janvier et février sont supérieures ou égales à 101 $, et ainsi de suite.

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))

    Par conséquent, notre formule IF imbriquée calcule la commission sur la base du chiffre le plus bas des colonnes B et C. Si l'une des colonnes est vide, il n'y a pas de commission du tout car aucune des conditions AND n'est remplie :

    Si vous souhaitez renvoyer 0% au lieu de cellules vides, remplacez une chaîne vide (''") dans le dernier argument par 0% :

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))

    Vous trouverez plus d'informations ici : Excel IF avec plusieurs conditions ET/OU.

    VLOOKUP au lieu de IF imbriqué dans Excel

    Lorsque vous traitez des "échelles", c'est-à-dire des plages continues de valeurs numériques qui, ensemble, couvrent la totalité de la plage, vous pouvez, dans la plupart des cas, utiliser la fonction VLOOKUP au lieu des IF imbriqués.

    Pour commencer, créez une table de référence comme indiqué dans la capture d'écran ci-dessous, puis créez une formule Vlookup avec les éléments suivants correspondance approximative c'est-à-dire avec le recherche de plage est réglé sur VRAI.

    En supposant que la valeur de référence se trouve dans B2 et que la table de référence est F2:G5, la formule est la suivante :

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Veuillez noter que nous corrigeons le tableau_réseau avec des références absolues ($F$2:$G$5) pour que la formule soit copiée correctement dans d'autres cellules :

    En attribuant la valeur TRUE au dernier argument de votre formule Vlookup, vous demandez à Excel de rechercher l'élément meilleure correspondance - si aucune correspondance exacte n'est trouvée, la formule renvoie la valeur la plus proche inférieure à la valeur de référence. Ainsi, votre formule correspondra non seulement aux valeurs exactes de la table de référence, mais aussi à toutes les valeurs intermédiaires.

    Ce nombre n'existe pas dans la table de recherche, et Vlookup avec une correspondance exacte renverrait une erreur #N/A dans ce cas. Mais Vlookup avec une correspondance approximative continue à chercher jusqu'à ce qu'il trouve la valeur la plus proche qui est inférieure à la valeur de recherche (qui est 50 $ dans notre exemple) et renvoie une valeur de la deuxième colonne de la même ligne (qui est 5 %).

    Mais que se passe-t-il si la valeur recherchée est inférieure au plus petit nombre de la table de recherche ou si la cellule de recherche est vide ? Dans ce cas, une formule Vlookup renverra l'erreur #N/A. Si ce n'est pas ce que vous voulez, imbriquez VLOOKUP dans IFERROR et fournissez la valeur à afficher lorsque la valeur recherchée n'est pas trouvée. Par exemple :

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")

    Remarque importante : pour qu'une formule Vlookup avec correspondance approximative fonctionne correctement, la première colonne de la table de consultation doit être triée dans l'ordre suivant ordre ascendant du plus petit au plus grand.

    Pour plus d'informations, veuillez consulter la section VLOOKUP à correspondance exacte et VLOOKUP à correspondance approximative.

    L'instruction IFS comme alternative à la fonction IF imbriquée

    Dans Excel 2016 et les versions ultérieures, Microsoft a introduit une fonction spéciale permettant d'évaluer plusieurs conditions - la fonction IFS.

    Une formule IFS peut gérer jusqu'à 127 Test logique / valeur_si_vrai et le premier test logique dont l'évaluation est VRAIE "gagne" :

    IFS(test_logique1, valeur_si_vrai1, [test_logique2, valeur_si_vrai2]...)

    Conformément à la syntaxe ci-dessus, notre formule IF imbriquée peut être reconstruite de cette manière :

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Veuillez noter que la fonction IFS renvoie l'erreur #N/A si aucune des conditions spécifiées n'est remplie. Pour éviter cela, vous pouvez ajouter une fonction supplémentaire Test logique / valeur_si_vrai à la fin de votre formule qui renverra 0 ou une chaîne vide ("") ou toute autre valeur que vous souhaitez si aucun des tests logiques précédents n'est VRAI :

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Par conséquent, notre formule renverra une chaîne vide (cellule vierge) au lieu de l'erreur #N/A si une cellule correspondante de la colonne B est vide ou contient du texte ou un nombre négatif.

    Remarque : comme pour les IF imbriqués, la fonction IFS d'Excel renvoie une valeur correspondant à la première condition qui vaut VRAI, c'est pourquoi l'ordre des tests logiques dans une formule IFS est important.

    Pour plus d'informations, veuillez consulter la section Fonction IFS d'Excel au lieu de IF imbriqué.

    CHOISIR au lieu d'une formule IF imbriquée dans Excel

    Une autre façon de tester plusieurs conditions dans une seule formule dans Excel est d'utiliser la fonction CHOOSE, qui est conçue pour renvoyer une valeur de la liste en fonction de la position de cette valeur.

    Appliquée à notre échantillon de données, la formule prend la forme suivante :

    =CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    Dans le premier argument ( index_num ), vous évaluez toutes les conditions et additionnez les résultats. Étant donné que VRAI équivaut à 1 et FAUX à 0, vous calculez de cette façon la position de la valeur à renvoyer.

    Par exemple, la valeur dans B2 est 150 $. Pour cette valeur, les 3 premières conditions sont VRAIES et la dernière (B2> ; 150) est FAUX. Donc, index_num est égal à 3, ce qui signifie que la 3ème valeur est retournée, soit 7%.

    Conseil. Si aucun des tests logiques n'est VRAI, index_num est égal à 0, et la formule renvoie l'erreur #VALUE ! Une solution simple consiste à inclure CHOOSE dans la fonction IFERROR de la manière suivante :

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")

    Pour plus d'informations, veuillez consulter la fonction CHOOSE d'Excel avec des exemples de formules.

    La fonction SWITCH comme forme concise de IF imbriqué dans Excel

    Dans les situations où vous avez affaire à un ensemble fixe de valeurs prédéfinies, et non à des échelles, la fonction SWITCH peut être une alternative compacte aux instructions IF imbriquées complexes :

    SWITCH(expression, valeur1, résultat1, valeur2, résultat2, ..., [défaut])

    La fonction SWITCH évalue expression contre une liste de valeurs et renvoie le résultat correspondant à la première correspondance trouvée.

    Si vous souhaitez calculer la commission sur la base des notes suivantes, plutôt que sur les montants des ventes, vous pouvez utiliser cette version compacte de la formule IF imbriquée dans Excel :

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    Vous pouvez également créer un tableau de référence comme celui illustré dans la capture d'écran ci-dessous et utiliser des références de cellules au lieu de valeurs codées en dur :

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")

    Notez que nous verrouillons toutes les références, à l'exception de la première, avec le signe $ pour éviter qu'elles ne soient modifiées lors de la copie de la formule dans d'autres cellules :

    Remarque : la fonction SWITCH n'est disponible qu'à partir de la version 2016 d'Excel.

    Pour plus d'informations, veuillez consulter la fonction SWITCH - la forme compacte de l'instruction IF imbriquée.

    Concaténation de plusieurs fonctions IF dans Excel

    Comme mentionné dans l'exemple précédent, la fonction SWITCH n'a été introduite que dans Excel 2016. Pour traiter des tâches similaires dans des versions Excel plus anciennes, vous pouvez combiner deux ou plusieurs instructions IF en utilisant l'opérateur Concaténer (& ;) ou la fonction CONCATENATE.

    Par exemple :

    =(IF(C2="a", 10%, "") & ; IF(C2="b", 7%, "") & ; IF(C2="c", 5%, "") & ; IF(C2="d", 3%, ""))*1

    Ou

    =CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & ; IF(C2="d", 3%, ""))*1

    Comme vous l'avez peut-être remarqué, nous multiplions le résultat par 1 dans les deux formules. Cela permet de convertir une chaîne de caractères renvoyée par la formule Concaténer en un nombre. Si le résultat attendu est du texte, l'opération de multiplication n'est pas nécessaire.

    Pour plus d'informations, veuillez consulter la fonction CONCATENATE dans Excel.

    Vous pouvez constater que Microsoft Excel fournit une poignée de bonnes alternatives aux formules IF imbriquées, et nous espérons que ce tutoriel vous a donné quelques indices sur la façon de les exploiter dans vos feuilles de calcul. Pour examiner de plus près les exemples abordés dans ce tutoriel, nous vous invitons à télécharger notre classeur type ci-dessous. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Instructions If imbriquées dans Excel - exemples (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.