Un SI imbriqué est un SI à l'intérieur d'un autre SI, utilisé quand il y a plus de deux résultats possibles. =SI(B2>=90;"A";SI(B2>=80;"B";SI(B2>=70;"C";"F"))) donne un A pour 90 ou plus, un B de 80 à 89, un C de 70 à 79 et un F en dessous de 70. SI s'appelle IF dans un Excel anglais, et le tableau montre la formule sous cette forme ; vous pouvez aussi y taper les formules en français, avec des points-virgules.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
=SI(B2>=90;"A";SI(B2>=80;"B";SI(B2>=70;"C";"F")))Cliquez sur C2 et regardez la barre de formule : trois fonctions SI, trois parenthèses fermantes à la fin. Passez la note de Dan en B5 à 75 et sa lettre passe de F à C.
Comment se lit un SI imbriqué
Excel lit la formule depuis le début et s'arrête au premier test qui est VRAI :
=IF(B2>=90, "A",
IF(B2>=80, "B",
IF(B2>=70, "C",
"F")))
- La note vaut-elle 90 ou plus ? Alors A, et rien d'autre n'est vérifié.
- Sinon, vaut-elle 80 ou plus ? Alors B. Ce test n'a pas besoin de préciser "et moins de 90", car une note de 90 ou plus ne l'atteint jamais.
- Sinon, vaut-elle 70 ou plus ? Alors C.
- Sinon F, la valeur_si_faux du dernier SI.
Chaque SI intérieur occupe la place de valeur_si_faux du précédent. Excel accepte jusqu'à 64 niveaux, mais une formule de plus de quatre ou cinq est difficile à vérifier à l'œil. Excel accepte les retours à la ligne dans une formule : vous pouvez donc présenter une longue formule ainsi dans la barre de formule, en appuyant sur Alt+Entrée (Windows) ou Ctrl+Option+Retour (Mac) avant chaque SI.
Pourquoi l'ordre des conditions compte
Comme Excel s'arrête au premier test VRAI, les seuils doivent aller du plus haut au plus bas quand vous utilisez >=. La colonne D contient les trois mêmes tests dans l'ordre inverse :
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Right order | Wrong order |
| 2 | Ana | 94 | A | C |
| 3 | Ben | 81 | B | C |
| 4 | Chloe | 70 | C | C |
| 5 | Dan | 65 | F | F |
| 6 | Eve | 88 | B | C |
=SI(B2>=70;"C";SI(B2>=80;"B";SI(B2>=90;"A";"F")))Dans la colonne D, tous ceux qui ont 70 ou plus reçoivent un C : une note de 94 passe le premier test, B2>=70, et les tests de B et de A ne sont jamais atteints. Si vous préférez commencer par la tranche la plus basse, inversez les opérateurs : =SI(B2<70;"F";SI(B2<80;"C";SI(B2<90;"B";"A"))) donne les mêmes notes que la colonne C.
SI imbriqués avec du texte
Les tests peuvent aussi comparer du texte. Ici, les frais de livraison dépendent de la région, et toute région non citée reçoit la dernière valeur :
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Fee |
| 2 | 1001 | North | $5.00 |
| 3 | 1002 | South | $7.00 |
| 4 | 1003 | West | $9.00 |
| 5 | 1004 | East | $6.00 |
| 6 | 1005 | Islands | $9.00 |
=SI(B2="North";5;SI(B2="South";7;SI(B2="East";6;9)))West et Islands ne correspondent à aucun des trois tests et reçoivent la valeur finale, $9.00. Quand chaque test compare la même cellule à une valeur fixe, comme ici, SI.MULTIPLE (SWITCH en anglais) écrit la même règle en citant chaque région une seule fois : =SI.MULTIPLE(B2;"North";5;"South";7;"East";6;9). Voir la page SI.MULTIPLE.
SI imbriqués avec ET
Un SI imbriqué peut combiner ses niveaux avec ET ou OU quand une tranche dépend de deux cellules. Un commercial avec des ventes de 2 000 ou plus et au moins 3 ans d'ancienneté reçoit 10 %, tout autre commercial au-dessus de 2 000 reçoit 5 %, et les autres rien :
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Sales | Years | Rate |
| 2 | Ana | 2400 | 4 | 10% |
| 3 | Ben | 2100 | 1 | 5% |
| 4 | Chloe | 1500 | 6 | 0% |
| 5 | Dan | 3000 | 3 | 10% |
| 6 | Eve | 900 | 2 | 0% |
=SI(ET(B2>=2000;C2>=3);10%;SI(B2>=2000;5%;0))Ana et Dan ont droit à 10 %, Ben a les ventes mais pas l'ancienneté et reçoit 5 %, et Chloe et Eve reçoivent 0 %. L'ordre compte ici aussi : le test le plus strict vient en premier. En français, la formule s'écrit =SI(ET(B2>=2000;C2>=3);10%;SI(B2>=2000;5%;0)).
SI.CONDITIONS : la même chose sans imbrication
Dans Excel 2019, Excel 2021 et Microsoft 365, SI.CONDITIONS (IFS en anglais) prend les tests et les résultats par paires, sans SI intérieur et avec une seule parenthèse fermante. TRUE (VRAI) comme dernier test joue le rôle de "tout le reste" :
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
Dans un Excel français : =SI.CONDITIONS(B2>=90;"A";B2>=80;"B";B2>=70;"C";VRAI;"F"). La fonction lit les conditions dans le même ordre et s'arrête à la première qui est VRAI, donc la règle d'ordre ci-dessus s'applique toujours. La page SI.CONDITIONS la présente, y compris l'erreur #N/A qu'elle renvoie quand aucun test ne correspond. Dans Excel 2016 et versions antérieures, SI.CONDITIONS n'existe pas, et un fichier qui l'utilise y affiche #NOM? (en anglais #NAME?).
Exercice : une commission à trois tranches
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Commission |
| 2 | Ana | $6,200 | |
| 3 | Ben | $2,400 | |
| 4 | Chloe | $600 |
À vous : En C2, versez 10 % des ventes de B2 quand elles atteignent 5000 ou plus, 5 % quand elles atteignent 1000 ou plus, et 0 sinon. La formule est recopiée jusqu'à C4.
Une table de recherche au lieu de nombreux SI
Quand les tranches sont des nombres et qu'il y en a plus de trois ou quatre, gardez les seuils dans un petit tableau et faites une recherche. Le tableau est trié du seuil le plus bas au plus haut, et la correspondance approximative (TRUE, VRAI, comme dernier argument) renvoie la ligne du plus grand seuil qui ne dépasse pas la note :
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 94 | A | 0 | F | |
| 3 | Ben | 81 | B | 70 | C | |
| 4 | Chloe | 70 | C | 80 | B | |
| 5 | Dan | 65 | F | 90 | A | |
| 6 | Eve | 88 | B |
=RECHERCHEV(B2;$E$2:$F$5;2;VRAI)Les résultats sont ceux du SI imbriqué en haut de la page. En français, la formule de C2 s'écrit =RECHERCHEV(B2;$E$2:$F$5;2;VRAI) (RECHERCHEV est VLOOKUP en anglais). Pour faire passer la tranche B à 85, remplacez E4 par 85 : aucune formule ne change, et toutes les notes se mettent à jour. Avec RECHERCHEX (XLOOKUP en anglais), la même recherche s'écrit =RECHERCHEX(B2;$E$2:$E$5;$F$2:$F$5;;-1), où -1 signifie "correspondance exacte ou valeur immédiatement inférieure" ; le tableau n'a alors pas besoin d'être trié.
À vous : la table des tranches est prête, écrivez la recherche.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 86 | 0 | F | ||
| 3 | 70 | C | ||||
| 4 | 80 | B | ||||
| 5 | 90 | A |
À vous : En C2, renvoyez la note correspondant au score de B2 à partir de la table des tranches en E2:F5.
Questions fréquentes
Comment écrire plusieurs SI dans une formule Excel ?
Placez le SI suivant dans l'argument valeur_si_faux du précédent : =SI(B2>=90;"A";SI(B2>=80;"B";SI(B2>=70;"C";"F"))). Excel teste les conditions de la première à la dernière et s'arrête à la première qui est VRAI.
Combien de fonctions SI peut-on imbriquer dans Excel ?
Jusqu'à 64 niveaux dans Excel 2007 et versions ultérieures. Bien avant cette limite, une formule devient difficile à lire et à vérifier ; au-delà de trois ou quatre tranches, une table de recherche avec RECHERCHEV ou RECHERCHEX en correspondance approximative est plus facile à maintenir.
Pourquoi mon SI imbriqué renvoie-t-il un mauvais résultat ?
En général parce que les conditions sont dans le mauvais ordre. Avec des tests >=, commencez par le seuil le plus haut : si B2>=70 vient en premier, une note de 95 s'arrête là et reçoit le résultat de la tranche 70.
Que peut-on utiliser à la place des SI imbriqués dans Excel ?
SI.CONDITIONS dans Excel 2019 et versions ultérieures (=SI.CONDITIONS(B2>=90;"A";B2>=80;"B";VRAI;"F")), SI.MULTIPLE quand vous comparez une valeur à des valeurs fixes, et une table de recherche avec =RECHERCHEV(B2;$E$2:$F$5;2;VRAI) pour des tranches numériques.