SI imbriqués

C'est quoi des SI imbriqués ?

La fonction SI retourne 2 et seulement 2 résultats selon le résultat d'un test ; VRAI ou FAUX.

Depuis les toutes premières versions d'Excel, le seul moyen de retourner plus de 2 résultats avec une fonction SI c'était de faire des SI imbriqués comme nous allons le voir dans cet article.

Mais depuis la nouvelle version d'Excel 2016 ou Office 365, de nouvelles fonctions sont maintenant disponibles pour gagner en lisibilité et écrite un test avec des SI imbriqués simplement.

Il s'agit des fonctions

  • SI.CONDITIONS
  • SI.MULTIPLE

Une autre façon de concevoir des SI imbriqués, c'est d'utiliser la fonction RECHERCHEV en valeur approchante dans le cas ou vous voulez retourner une valeur par tranche (mention du bac, prime aux commerciaux, calculs des heures supplémentaires, ...)

Exemple de gestion de stocks

Le test logique

Prenons l'exemple d'une gestion de stocks. Nous allons commencer par créer un test logique qui va comparer le stock fin de mois avec le stock de début de mois.

=G2<D2

Si le stock fin de mois est inférieur au début de mois, alors il y a eu déstockage et le test retournera VRAI.

La première fonction SI

Maintenant, ce test va être écrit dans une fonction SI pour retourner non pas VRAI ou FAUX mais un écrire le mot Déstockage.

=SI(G2<D2;"Déstockage"; ........

Mais ici, nous ne pouvons pas terminer l'écriture de la fonction SI car nous devons traiter les deux cas suivant :

  • le stock a augmenté
  • le stock n'a pas changé

La solution c'est d'écrire une seconde fonction SI à la place du premier paramètre FAUX de la première fonction SI.

=SI(Test1; Résultat si Test1 VRAI; SI(Test2;Résultat si Test2 VRAI;Test2;Résultat si Test2 FAUX))

La deuxième fonction SI

pour la seconde fonction SI, nous allons écrire un second test. Ce test sera de tester si la quantité en fin de mois est supérieure à la quantité en stock en début de mois. La formule devient :

=SI(G2<D2;"Déstockage";SI(G2>D2;"Re-stockage";"Pas de changement"))

si_imbrique_1

La fonction est constituée de 2 tests et de 3 résultats.

Astuce pour améliorer la visibilité de la formule

Pour améliorer la visibilité des SI imbriqués vous pouvez insérer des sauts de ligne à l'intérieur de votre formule.

Pour cela il vous suffit de positionner votre curseur à l'endroit où souhaitez faire un saut de ligne et vous appuyez sur les touches Alt + Entrée

si_imbrique_2

Même formule mais avec saut de ligne

La vidéo suivante vous explique tout cela en détail

Nouvelles formules depuis Excel 2016

Les SI imbriqués ont toujours été compliqués à concevoir. Voilà pourquoi, les équipes de développement de Microsoft ont ajouté de nouvelles fonctions en février 2016 pour simplifier la construction et la lisibilité des SI imbriqués.

La fonction SI.CONDITIONS

Comme le S final de la fonction vous le fait deviner, la nouvelle fonction SI.CONDITIONS vous permet d'écrire toutes vos conditions les unes à la suite des autres. Et pour chacune d'elle, le résultat a afficher. L'écriture est la suivante

=SI.CONDITIONS(Test1;Résultat1;Test2;Résultat2;Test3;Résultat3;...)

Il y a cependant un piège à éviter. Si aucun test n'a été vérifié, la fonction va retourner l'erreur #N/A (qui signifie en anglais Not Applicable).

Autrement dit, il est indispensable de prévoir en dernier paramètre de votre formule une fonction VRAI qui va gérer les cas où aucun des précédents tests ne sont VRAI (ce point est précisé dans la vidéo). L'écriture devient à alors

=SI.CONDITIONS(Test1;Résultat1;Test2;Résultat2;Test3;Résultat3;...;VRAI;"")

Exercice avec la fonction SI.CONDITIONS

A titre d'exemple, vous voulez attribuer une prime à vos vendeurs selon le nombre de voitures qu'ils ont vendu au cours du mois. Vous attribuez une prime de

  • 20 % pour ceux qui ont vendu 20 voitures et plus
  • 10 % pour ceux qui ont vendu 15 voitures
  • 5 % pour ceux qui ont vendu 10 voitures

La formule s'écrit de la façon suivante :

=SI.CONDITIONS(B2>20;20%;B2>15;10%;B2>10;5%)

Seulement, si le nombre de voitures vendues est inférieur à 10, la fonction retourne une erreur. Pour corriger cela, nous rajoutons VRAI en dernier paramètre.

=SI.CONDITIONS(B2>20;20%;B2>15;10%;B2>10;5%;VRAI;"")

La fonction SI.MULTIPLES

Pour la fonction SI.MULTIPLE le comportement est différent.

En fait nous évaluons le résultat d'une cellule et nous indiquons les différentes valeurs que nous pouvons rencontrer. En fait, cette formule se comporte comme la fonction Select Case en VBA ou Switch dans d'autres langages informatiques.

Prenons l'exemple des jours de la semaine vous avez en cellule A1 une valeur qui va de 1 à 7 pour écrire le jour de la semaine correspondant nous allons écrire la formule suivante :

=SI.MULTIPLE(A1;1;"Lundi";2;"Mardi";3;"Mercredi";4;"Jeudi";5;"Vendredi";6;"Samedi";7;"Dimanche")

Mais très honnêtement, il est plus facile d'écrire le même résultat avec une fonction RECHERCHEV 😉

Articles complémentaires


Voici une liste d'articles qui pourrait également vous intéresser sur le même thème.

Lien Permanent pour cet article : https://www.excel-exercice.com/si-imbriques/


(4 commentaires)

Passer au formulaire de commentaire

    • Laurent Aubin on 07/09/2018 at 16:55
    • Répondre

    Bonjour,

    j'aurais besoin d'un coup de pouce pour effectuer une formule sur un tableau un peu différent des autres et j'ai du mal avec toutes ces formules

    Merci d'avance

  1. Bonjour,

    Je cherche une formule avec deux imbriqués Si(ou) :

    Ma cellule E3 peut être égale à Service ou Industriel...
    Une cellule H5 est un pourcentage calculé automatiquement précédemment.
    Et je souhaite obtenir un oui ou un non dans la cellule de la formule en fonction de E3 et H5 qui peuvent changer.

    =SI(ET(E3="SERVICE";H510%);"OUI";"NON"))

    Je vous remercie pour votre aide 🙂

  2. Le travail devient mieux efficace et peux pénible avec l'apparition de ces deux nouvelles fonctions SI.CONDITIONS et SI.MULTIPLE.
    Merci pour ces infos!

    1. De rien 🙂

Laisser un commentaire

Your email address will not be published.