Comment faire plusieurs SI

Temps de lecture : 3 minutes

La fonction SI retourne seulement le résultat de 2 valeurs ; VRAI ou FAUX. Mais comment retourner plus de résultats ? Voici les techniques

Méthodes pour faire des SI imbriqués

Il existe 4 méthodes pour effectuer des SI imbriqués

  • Plusieurs SI dans la même formule
  • La fonction RECHERCHEV (option approchante)
  • La fonction SI.CONDITIONS (Excel 2016)
  • La fonction SI.MULTIPLE (Excel 2016)

Selon vos besoins, prenez l'une ou l'autre des méthodes

Ecrire plusieurs SI

La fonction SI retourne 2 résultats selon le résultat d'un test logique ; VRAI ou FAUX. Mais comment faire si nous cherchons à retourner plus de 2 résultats ? 🤔🤨

La méthode c'est d'écrire d'autres tests SI à la place du paramètre FAUX.

Présentation d'un SI imbriqué

Prenons l'exemple d'une gestion de stocks. 3 cas sont à prendre en compte

  • Augmentation du stock
  • Baisse du stock
  • Pas de changement

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 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. Nous avons bien 2 SI imbriqués.

Nouvelles formules depuis Excel 2016

Pour simplifier l'écriture de plusieurs SI, 2 nouvelles fonctions ont été créés depuis la version d'Office 2016.

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;...)

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%)

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(B2>=20;20%;B2>=15;10%;B2>=10;5%;VRAI;"")

La fonction SI.MULTIPLES

Pour la fonction SI.MULTIPLE l'écriture est différente.

  1. Nous évaluons le résultat d'une cellule
  2. Selon la valeur, nous retournons les différents cas énumérés

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, ou RECHERCHEX 😉

24 Comments

  1. Manel
    24/05/2022 @ 09:31

    Bonjour à tous,

    je cherche une formule qui me permettrai d'indiquer une valeur selon que celle-ci se trouve dans une tranche horaire ou une période.

    j'ai essayé
    =SI.CONDITIONS(ET(I2>=$S$4;I2=$S$2;I2=$S$3;I2=$S$5;I2=$S$6;I2<=$T$6);$U$6)

    mais cela m'indique que la valeur du U4,

    j'ai 6 colonnes et 5 conditions
    Date de début, date de fin, index, entre le, et le doit me donner l'index en vigueur
    14/09/2021 31/01/2022 1.8476 01/04/2022 31/05/2022 ?
    01/02/2022 31/03/2022 1.8114 01/02/2022 31/03/2022 ?
    01/03/2022 30/06/2022 1,7758 01/10/2021 31/01/2022 ?
    et ainsi de suite

    Merci pour votre aide

    Reply

  2. STEENHAULT Françoise
    23/05/2022 @ 11:19

    Mon exemple que je ne parviens pas à résoudre

    A B C D E

    1 0,74 1,80
    2 0,81 1,90
    3 0,90 2,00
    4 0,72

    si A1,B1,C1,D1 est entre 0,70 et 0,80 alors la réponse est 1,80;
    MAIS si A1,B1,C1,D1 est entre 0,81 et 0,89 la réponse est 1,90;
    MAIS si A1,B1,C1,D1 est entre 0,90 et 0,96 la réponse est 2

    Je n'arrive pas à adapter la formule.

    Merci de votre attention

    Françoise

    Reply

  3. Emile
    28/10/2021 @ 17:19

    Bonjour,
    Merci :)
    Pas convaincu non plus par le SI.MULTIPLE
    d'autant que
    =SI.MULTIPLE(A1;1;"Lundi";2;"Mardi";3;"Mercredi";4;"Jeudi";5;"Vendredi";6;"Samedi";7;"Dimanche")
    pourrait s'écrire
    =CHOISIR(A1;"Lundi";"Mardi";"Mercredi";"Jeudi";"Vendredi";"Samedi";"Dimanche")
    ou
    =NOMPROPRE(TEXTE("02/01/2000"+A1;"jjjj"))
    sans compter les solutions basées sur les recherches, comme précisé dans l'article

    Reply

    • Frédéric LE GUEN
      28/10/2021 @ 17:39

      Je suis d'accord que la fonction SI.MULTIPLE n'est pas la plus utile d'Excel. Mais elle existe. L'intérêt de cet article c'est de montrer toutes les fonctions existantes qui peuvent solutionner le problème. Après, libre à chacun d'utiliser la fonction qui lui plaît le plus.

      Reply

  4. Franck Gueguen
    03/08/2021 @ 10:31

    Bonjour
    Je recherche une formule de calcule précise
    pour moi il s'agit d'une fonction Si, mais je n'arrive pas à la valider
    pouvez-vous m'aider
    voici les éléments
    - je cherche à calculer une surcharge indexée sur le poids d'une marchandise
    - le resultat de ce calcul (C21*0.087) doit être compris entre 12 et 120

    j'ai tenté la formule en SI imbriqué ci-dessous mais j'ai reçu une message comme quoi il y avait trop de paramètres
    =SI(C21*0.087120;120;C21*0.087))

    j'ai aussi testé SI;CONDITIONS mais le résultat est supérieur à 120
    =SI.CONDITIONS(C21*0,08712;C21*0,087;C21*0,087>=120;120)

    pourriez-vous m'aider?
    merci

    Reply

  5. stef
    29/07/2021 @ 17:15

    bonjour, je ne sais pas si une formule existe pour ma demande....
    je fais actuellement un questionnaire sur conditions de travail de salariés, j'ai transformé leurs réponses en tableau.
    J'ai besoin de savoir si leur prise de poids est lié à leur rythme de travail.
    comment faire?

    Reply

  6. Patrick
    01/04/2021 @ 11:56

    bonjour,
    je ne trouve pas sur votre site ma solution, c'est pour vérifier les votes d'une AG.
    mon problème est:
    c'est un vote avec article 24 et 25
    selon le vote 24 ou 25 les pourcentages de votes ne sont pas les mêmes.
    U5 présents
    T6 = 24 ou 25 (article de vote)
    X3 = tantièmes présents
    AA= tantièmes minimum pour que le vote soit accepté art 24
    AB=tantièmes minimun pour que vote soit accepté art 25.
    si vous pouvez m'aider.
    merci

    Reply

  7. Clavert
    05/02/2021 @ 19:34

    Bonjour!
    Vous faites du bon boulot. Je viens de visionner votre vidéo.
    Seulement, je ne dispose pas des 2 nouvelles fonctions dont vous avez parlé, même si je dispose d'un Excel 2016 avec licence.

    Reply

  8. HubertRB
    29/01/2021 @ 17:13

    Comment calculer comme ceci avec une formule excel
    =SI(OU(3;4;6;8;50;52;53;55;60;65;70;71;72;80;85)=E2;"W";"E")

    Reply

    • Clavert
      05/02/2021 @ 19:57

      Bonjour!
      Je ne sais si j'ai compris votre préoccupation. Mais, vous pouvez essayer ceci:
      =SI(OU(E2=3;E2=4;E2=6;E2=8;E2=50;E2=52;E2=53;E2=55;E2=60;E2=65;E2=70;E2=71;E2=72;E2=80;E2=85);"W";"E")

      Reply

  9. Myma
    16/01/2021 @ 16:32

    Bonjour,
    Il semble que ces fonctions ne soient disponibles qu'à partir de la version 2019 d'Excel et non 2016.
    Merci pour ce tuto.

    Reply

  10. Stéphane Rialland
    25/11/2020 @ 16:53

    Apparemment la formule n'a pas été correctement interprétée ?
    =SI(E2>60;"ETOILE");
    SI(ET(E250;"ENIGME");
    SI(ET(E240;"Vache à lait");
    SI(E2<40;"Poids mort";"")))

    Reply

  11. Stéphane Rialland
    25/11/2020 @ 16:49

    Bonjour,
    Je dois imbriquer plusieurs SI dont certains avec 2 conditions
    ex: =SI(E2>60;"ETOILE");SI(ET(E250;"ENIGME");SI(ET(E240;"Vache à lait");SI(E2<40;"Poids mort";"")))
    j'ai comme erreur : #VALEUR!
    Pouvez vous m'aider ?
    Cordialement

    Reply

  12. KALI
    14/10/2020 @ 10:03

    BONJOUR

    QUAND JE CREE UNE ALERTE SUR EXCEL, AVEC LA FORMULE SI, LES DATES AVANT 2000 NE SONT PAS PRIS EN COMPTE DANS LE CALCUL.
    LE CALCUL ET L'ALERTE FONCTIONNENT DES L'ANNEE 2000.

    MERCI DE VOTRE RETOUR.
    KALI

    Reply

  13. Natacha
    27/06/2019 @ 20:52

    bonjour, je dois créer un tableau.
    une liste déroulante qui contient les nom des site et je souhaiterai créer une formule qui fasse correspondre l'adresse ip au site choisi dans la liste déroulante
    exemple agde centre qui dois corespondre à 10.56.00.00
    si je choisi Ateliers il doit s'afficher 11.54.15.22
    pouvez vous m'aidez, je n'y arrive pas
    dans l'attente de vous lire cordialement.

    Reply

    • Frédéric LE GUEN
      28/06/2019 @ 08:51

      Dans ce cas, c'est la fonction RECHERCHEV que vous devez utiliser (regardez la vidéo pour vous aider à comprendre)

      Reply

  14. Ricky67
    18/06/2019 @ 17:11

    Bonjour,
    Je cherche é determiner si la valeur d'une cellule est plus ou moins élévée de 10% en comparant avec une autre cellule, le but étant de lier cette fonction par la suite à une forme conditionnelle afin de changer la couleur de ma cellule cible. Voici un exemple de ce que j'aimerais;
    Cellule A1 = 90
    Cellule B1 =95
    La condition serait la suivante; Si la valeur de la cellule B est inférieure ou égale à 10% d'écart avec ma cellule A, alors ma cellule B se met en vert, si + de 10% en moins elle se met en bleu, et si + de 10% en plus en rouge.
    Dans ce cas la cellule B serait en vert, elle serait en bleu si la valeur était de 60 et en rouge si elle était 115 par exemple.
    Voilà j'èspere être assez précis, merci beaucoup si vous avez une solution et pour votre aide.

    Reply

    • Frédéric LE GUEN
      18/06/2019 @ 19:13

      Bonjour, avez-vous regardez l'article sur les mises en forme conditionnelles ? J'ai exactement expliqué ce point pour mettre d'une couleur différente les 10% des valeurs les plus élevés.

      Reply

  15. Josée Robitaille
    30/04/2019 @ 22:20

    J'aimerais automatiser la feuille de temps de mes employés.
    Les heures y sont inscrites sous le format 0:00
    Les totaux se font sur 2 lignes (l'une en format 0:00 et l'autre en format décimal)
    Les employés ont droit à des heures de pause/repas payées mais non incluent dans le calcul précédent.
    Entre 3 et 5 heures = 15 minutes
    Entre 5 et 8 heures = 30 minutes
    Entre 8 et 10 heures = 45 minutes
    10 heures et plus = 60 minutes

    J'ai utilisé la formule SI.MULTIPLE qui ne semble pas fonctionner avec le format heure ni avec les fractions.
    Pouvez-vous m'aider??

    Reply

  16. Laurent Aubin
    07/09/2018 @ 16:55

    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

    Reply

  17. Cln
    22/02/2018 @ 18:07

    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 :)

    Reply

    • NANA Danini
      07/11/2021 @ 00:20

      =SI(ET(E3="SERVICE";H5=10%);"OUI";"NON")
      j'espère qu'avec ça votre problème sera résolu

      Reply

  18. Formation Excel
    25/04/2017 @ 20:14

    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!

    Reply

    • Frédéric LE GUEN
      29/04/2017 @ 18:16

      De rien :)

      Reply

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

MICROSOFT MVP

RECHERCHE D’EMPLOI AVEC