«

»

SI imbriqués

Comme nous l’avons vu dans la première partie de ce tuto, un test retourne toujours VRAI ou FAUX et dans un deuxième temps, nous avons comment la fonction SI vous permet de personnaliser le résultat en retournant du texte ou des valeurs. Seulement, il y a des situations où ne retourner que deux résultats masquent une partie de l’analyse qui peut être faite de vos données comme nous le verrons dans l’exemple dans cet article.

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. Cette méthode reste toujours valable mais grâce à 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. Il s’agit des fonctions SI.CONDITIONS et 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, …)

Nous allons détailler l’exemple de la vidéo pour savoir si à la fin du mois nous avons déstocké, restocké, ou si nous avons un stock identique par rapport au mois précédent.

SI Imbriqués




Nous allons commencer par créer une fonction SI qui va comparer le stock fin de mois avec le stock de début de mois. Si le stock fin de mois est inférieur, alors il y a eu déstockage. Nous pouvons écrire la formule de la façon suivante :

=SI(G2<D2; »Déstockage »;

Mais ici, nous ne pouvons pas terminer l’écriture de la fonction SI car nous devons traiter le cas ou on nous avons eu une augmentation des stocks et également quand le stock n’a pas changé.

Quand vous devez retourner plus de 2 résultats il n’y a pas d’autre choix que d’écrire une seconde fonction SI à la place du premier paramètre FAUX de votre première fonction SI. Donc, dans notre première fonction SI, nous allons remplacer le paramètre FAUX par une nouvelle fonction SI mais avec un test différent cette fois-ci.

Maintenant, nous allons 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 »))

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

si_imbrique_1

Améliorer la visibilité

Quand vous concevez des SI imbriqués, vous risquez de rajouter des tests les uns derrière les autres qui rendront la lisibilité de votre formule très difficile, aussi bien pour vous que pour ceux qui vont ouvrir votre classeur.

Pour améliorer la visibilité des SI imbriqué 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

Nouvelles formules




Les SI imbriqués ont toujours été compliqués à concevoir. Mettre sur la même ligne toute une série de SI les uns dans les autres n’est jamais facile à écrire et encore moins à relire. Dans ce souci, les équipes de développement de Microsoft ont ajouté de nouvelles fonctions en février 2016 dans la version d’Excel 2016. Il s’agit des fonctions SI.CONDITIONS et SI.MULTIPLE.

SI.CONDITIONS

Comme le S final de la fonction vous le fait deviner, la nouvelle fonction SI.CONDITIONS vous permet d’écrire les unes à la suite des autres toutes vos conditions avec 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 ne retourne VRAI la fonction va retourner l’erreur #N/A (qui signifie en anglais not applicable). Autrement dit, il est indispensable de prévoir en dernier élément de votre formule une fonction VRAI qui va gérer les cas où aucun des précédents tests ne sont VRAI (re-visionner la vidéo à ce sujet). L’écriture devient à alors

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

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 mais elle n’est pas complète à cause des vendeurs qui vendent moins de 10 voitures et donc qui n’ont pas de prime.

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

La formule complète est la suivante

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

Corrigez directement dans le classeur ci-dessus (ou changez les valeurs de la colonne B) pour voir comment la fonction réagie.

SI.MULTIPLES

Pour la fonction SI.MULTIPLE le comportement est différent. En fait nous évaluons le résultat d’une cellule et selon les valeurs trouvées, chaque valeur va faire l’objet d’un résultat différent. 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 »)

Changez la valeur en A1 et double-cliquez sur la cellule en B1 pour voir la formule dans son entier.




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

(2 commentaires)

  1. Formation Excel

    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. Frédéric LE GUEN

      De rien 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Advertisment ad adsense adlogger