Fonction SI – Utiliser des formules imbriquées et éviter les pièges

S’applique à
Excel pour Microsoft 365 Excel pour Microsoft 365 pour Mac Excel 2024 Excel 2024 pour Mac Excel 2021 Excel 2021 pour Mac Excel 2019 Excel 2016 Excel Web App Excel pour Windows Phone 10

La fonction SI permet d’effectuer une comparaison logique entre une valeur et une hypothèse en testant une condition et en renvoyant un résultat Vrai ou Faux.

  • =SI(quelque chose est vrai, effectuer telle action, sinon effectuer telle autre action)

Une instruction SI peut donc avoir deux résultats. Le premier résultat est appliqué si la comparaison est vérifiée, sinon le deuxième résultat est appliqué.

Bien que les instructions SI soient extraordinairement puissantes et constituent la base de nombreux modèles de feuille de calcul, elles sont également à l’origine de nombreux problèmes de feuille de calcul. Dans l’idéal, une instruction SI doit s’appliquer à des conditions minimales, telles que Homme/Femme, Oui/Non/Peut-être, mais il arrive que vous deviez évaluer des scénarios plus complexes nécessitant une imbrication* de plus de 3 fonctions.

* « L’imbrication » fait référence à la pratique consistant à réunir plusieurs fonctions dans une seule formule.

Détails techniques

Utilisez la fonction SI, une des fonctions logiques, pour renvoyer une valeur si une condition est vraie et une autre valeur si elle est fausse.

Syntaxe

SI(test_logique; valeur_si_vrai; [valeur_si_faux])

Par exemple :

  • =SI(A2>B2 ;"Dépassement de budget » ;"OK »)
  • =SI(A2=B2;B4-A4;"")
Argument Description
test_logique
(obligatoire)
Condition que vous souhaitez tester.
valeur_si_vrai
(obligatoire)
Valeur à renvoyer si le résultat de logical_test est VRAI.
valeur_si_faux
(facultatif)
Valeur que vous souhaitez retourner si le résultat de logical_test est FAUX.

Remarques

Excel vous permet d’imbriquer jusqu’à 64 fonctions SI différentes, mais il n’est pas du tout conseillé de le faire. Pourquoi ?

  • L’utilisation de plusieurs instructions SI nécessite beaucoup de réflexion pour créer celles-ci de façon appropriée et s’assurer que leur logique se calcule correctement, condition après condition. Si vous n’imbriquez pas votre formule avec une précision à 100 %, elle peut fonctionner dans 75 % des cas, mais renvoyer des résultats inattendus dans 25 % des cas. Malheureusement, les chances que vous déceliez ces 25 % d’occurrences sont minces.
  • Il peut s’avérer très difficile de gérer des instructions SI multiples, en particulier si vous y revenez après un certain temps en essayant de comprendre ce que vous, ou pire une autre personne, avez voulu faire précisément.

Si vous vous retrouvez avec une déclaration SI qui semble continuer à croître sans fin en vue, il est temps de poser la souris et de repenser votre stratégie.

Voyons comment créer correctement une instruction SI imbriquée complexe à l’aide de plusieurs SI et quand reconnaître qu’il est temps d’utiliser un autre outil dans votre arsenal Excel.

Exemples

Voici un exemple d’instruction SI imbriquée relativement standard destinée à convertir un résultat de test d’étudiant en note alphabétique équivalente.

Instruction SI imbriquée complexe - La formule en E2 est =SI(B2>97,A+,SI(B2>93,A,SI(B2>89,A-,SI(B2>87,B+,SI(B2 83,B,SI(B2>>79,B-,SI(B2>77,C+,SI(B2>73,C,SI(B2>69,C-,SI(B2>57,D+,SI(B2>53,D,SI(B2>49,D-, F))))))))))))

  • =SI(D2>89,"A »,SI(D2>79,"B »,SI(D2>69,"C »,SI(D2>59,"D »,"F »))))
    Cette instruction SI imbriquée complexe suit une logique simple :
  1. Si le résultat du test (dans la cellule D2) est supérieur à 89, l’étudiant reçoit la note A
  2. Si le résultat du test est supérieur à 79, l’étudiant reçoit la note B
  3. Si le résultat du test est supérieur à 69, l’étudiant reçoit la note C
  4. Si le résultat du test est supérieur à 59, l’étudiant reçoit la note D
  5. Autrement, l’étudiant reçoit la note F

Cet exemple particulier est relativement sûr, car il est peu probable que la corrélation entre les résultats des tests et les notes alphabétiques change, il ne nécessite donc pas beaucoup d’entretien. Mais voici une pensée : que se passe-t-il si vous devez segmenter les notes entre A+, A et A- (et ainsi de suite) ? Votre instruction SI à quatre conditions doit être réécrite pour évaluer 12 conditions ! Voici à quoi ressemblerait votre formule maintenant :

  • =SI(B2>97,"A+ »,SI(B2>93,"A »,SI(B2>89,"A-« ,SI(B2>87,"B+ »,SI(B2>83,"B »,SI(B2>79,"B-« , SI(B2 77,"C+ »,SI(B2>>73,"C »,SI(B2>69,"C-« ,SI(B2>57,"D+ »,SI(B2>53,"D »,SI(B2>49,"D-« ,"F »))))))))))))

Il est toujours précis sur le plan fonctionnel et fonctionnera comme prévu, mais il prend beaucoup de temps à écrire et plus de temps à tester pour s’assurer qu’il fait ce que vous voulez. Un autre problème flagrant est que vous avez dû entrer les scores et les notes alphabétiques équivalentes à la main. Quelles sont les chances que vous ayez accidentellement une faute de frappe ? Imaginez que vous deviez faire cela 64 fois avec des conditions plus complexes. Bien sûr, c’est possible, mais voulez-vous vraiment vous soumettre à ce genre d’effort et à des erreurs probables qui seront vraiment difficiles à repérer ?

Conseil

Dans Excel, chaque fonction doit figurer entre parenthèses (). Excel essaie de vous aider à déterminer ce qui va où en colorant différentes parties de votre formule lorsque vous la modifiez. Par instance, si vous modifiez la formule ci-dessus, lorsque vous déplacez le curseur au-delà de chacune des parenthèses de fin « ) », la parenthèse ouvrante correspondante prend la même couleur. Cela peut être particulièrement utile dans les formules imbriquées complexes lorsque vous essayez de déterminer si vous avez suffisamment de parenthèses correspondantes.

Exemples supplémentaires

Voici un exemple très courant de calcul de commission de ventes basé sur les niveaux de chiffre d’affaires accompli.

La formule dans la cellule D9 est SI(C9 15000,20 %,SI(C9 12500,17,5 %,SI(C9>10000,15 %,SI(C9>7500,12,5 %,SI(C9>5000,10 %,0)))))>>

  • =SI(C9 15000,20 %,SI(C9 12500,17,5 %,SI(C9>10000,15 %,SI(C9>7500,12,5 %,SI(C9>5000,10 %,0)))))>>

Cette formule signifie SI (C9 est supérieur à 15 000 retourner 20 %, SI (C9 est supérieur à 12 500 retourner 17,5 %, et ainsi de suite...

Bien qu’elle soit remarquablement similaire à l’exemple précédent des grades, cette formule est un excellent exemple de la difficulté de maintenir de grands énoncés IF - que devriez-vous faire si votre organisation décidait d’ajouter de nouveaux niveaux de rémunération et peut-être même de modifier les valeurs existantes en dollars ou en pourcentage ? Vous auriez beaucoup de travail sur les bras !

Conseil

Vous pouvez insérer des sauts de ligne dans la barre de formule pour faciliter la lecture des formules longues. Appuyez simplement sur ALT+Entrée devant le texte qui doit figurer sur une nouvelle ligne.

Voici un exemple du scénario de calcul de commission dont la logique est désordonnée :

La formule en D9 est dans le désordre comme =SI(C9>5000,10 %,SI(C9>7500,12,5 %,SI(C9>10000,15 %,SI(C9>12500,17,5 %,SI(C9>15000,20 %,0))))) Pouvez-vous voir ce qui ne va pas ? Comparez l’ordre des comparaisons de revenus à l’exemple précédent. Dans quelle direction va celui-ci ? C’est vrai, ça va de bas en haut (5 000 $ à 15 000 $), et non l’inverse. Mais pourquoi cela devrait-il être si important ? C’est un gros problème car la formule ne peut pas passer la première évaluation pour une valeur supérieure à 5 000 $. Supposons que vous avez un revenu de 12 500 $ – le relevé IF renverra 10 % parce qu’il est supérieur à 5 000 $, et il s’arrêtera là. Cela peut être incroyablement problématique car dans de nombreuses situations, ces types d’erreurs passent inaperçus jusqu’à ce qu’ils aient un impact négatif. Donc, sachant qu’il existe de sérieux pièges avec des instructions SI imbriquées complexes, que pouvez-vous faire ? Dans la plupart des cas, vous pouvez utiliser la fonction RECHERCHEV au lieu de créer une formule complexe avec la fonction SI. À l’aide de la fonction RECHERCHEV, vous devez d’abord créer une table de référence :

La formule dans la cellule D2 est =RECHERCHEV(C2;C5:D17;2;VRAI)

  • =RECHERCHEV(C2;C5:D17;2;VRAI)

Cette formule indique de rechercher la valeur de C2 dans la plage C5:C17. Si la valeur est trouvée, elle renvoie la valeur correspondante de la même ligne dans la colonne D.

La formule dans la cellule C9 est =RECHERCHEV(B9;B2:C6;2;VRAI)

  • =RECHERCHEV(B9;B2:C6;2;VRAI)

De même, cette formule recherche la valeur figurant dans la cellule B9 de la plage B2:B22. Si la valeur est trouvée, elle renvoie la valeur correspondante de la même ligne dans la colonne C.

Remarque

Ces deux formules RECHERCHEV utilisent l’argument VRAI à la fin, ce qui signifie que nous souhaitons qu’elles recherchent une correspondance approximative. En d’autres termes, elles trouvent les valeurs exactes dans la table de recherche, ainsi que les valeurs s’inscrivant entre les valeurs exactes. Dans ce cas, les tables de recherche doivent être triées dans l’ordre croissant, soit de la valeur la plus petite à la plus grande.

RECHERCHEV est traité beaucoup plus en détail ici, mais c’est certainement beaucoup plus simple qu’une instruction SI imbriquée complexe à 12 niveaux ! Elle présente également d’autres avantages moins évidents :

  • Les tables de références RECHERCHEV sont bien visibles.
  • Vous pouvez aisément mettre à jour leurs valeurs sans jamais devoir modifier la formule en cas de modification des conditions.
  • Si vous ne voulez pas que des personnes voient votre tableau de référence ou interfèrent avec celui-ci, placez-le simplement sur une autre feuille de calcul.

Le saviez-vous ?

Il existe désormais une fonction SI.CONDITIONS qui peut remplacer plusieurs instructions SI imbriquées par une seule fonction. Ainsi, au lieu de notre exemple initial relatif à la conversion en notes, qui comporte 4 fonctions SI imbriquées :

  • =SI(D2>89,"A »,SI(D2>79,"B »,SI(D2>69,"C »,SI(D2>59,"D »,"F »))))

Nous pouvons simplifier sensiblement la formule en utilisant une seule fonction SI.CONDITIONS comme suit :

  • =SI(D2>89,"A »,D2>79,"B »,D2>69,"C »,D2>59,"D »,TRUE,"F »)

La fonction SI.CONDITIONS est idéale car vous n’avez pas à vous soucier de toutes ces instructions SI et parenthèses.

Remarque

Cette fonctionnalité n’est disponible que si vous avez un abonnement Microsoft 365. Si vous êtes abonné à Microsoft 365, vérifiez que vous utilisez la dernière version d’Office.

Vous avez besoin d’une aide supplémentaire ?

Vous pouvez toujours poser des questions à un expert de la Communauté technique Excel ou obtenir de l’aide dans les Communautés.