=SI(B2>=50;"Pass";"Fail") vérifie si la note de B2 vaut 50 ou plus. Si c'est le cas, la cellule affiche Pass ; sinon, elle affiche Fail. SI s'appelle IF dans un Excel anglais, et le tableau affiche la formule sous cette forme : =IF(B2>=50,"Pass","Fail").
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Result |
| 2 | Ana | 72 | Pass |
| 3 | Ben | 45 | Fail |
| 4 | Chloe | 50 | Pass |
| 5 | Dan | 38 | Fail |
| 6 | Eve | 91 | Pass |
=SI(B2>=50;"Pass";"Fail")Cliquez sur C2 pour voir la formule, puis passez la note de Ben en B3 à 60 : son résultat devient Pass. Chloe a exactement 50, et >= signifie "50 ou plus", donc elle est reçue. Avec >, elle serait recalée.
Syntaxe de SI
=IF(logical_test, value_if_true, value_if_false)
logical_test(test_logique) est une comparaison ou une formule qui donne VRAI ou FAUX :B2>=50,C2="Paid",D2<AUJOURDHUI().value_if_true(valeur_si_vrai) est ce que la cellule affiche quand le test est VRAI.value_if_false(valeur_si_faux) est ce qu'elle affiche sinon. Il est facultatif : omettez-le et la cellule affiche FAUX quand le test échoue. Gardez le séparateur mais laissez l'argument vide,=SI(B2>=50;"Pass";), et elle affiche 0.
Chaque résultat peut être du texte entre guillemets ("Pass"), un nombre (0), une référence de cellule (C2) ou une autre formule. Du texte sans guillemets est lu comme un nom, donc =SI(B2>=50;Pass;Fail) donne #NOM? (en anglais #NAME?, le nom d'erreur qu'affiche le tableau).
Les opérateurs de comparaison sont = (égal), <> (différent), >, <, >= et <=. Dans un Excel français, la virgule sert de séparateur décimal et les arguments sont séparés par des points-virgules : =SI(B2>=50;"Pass";"Fail"). Vous pouvez aussi taper les formules du tableau de cette façon. Google Sheets utilise la même fonction SI avec les mêmes arguments.
SI avec du texte
Un test peut comparer une cellule à du texte. Le texte se met entre guillemets, et la comparaison ne tient pas compte des majuscules et minuscules.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Free delivery | Exact case |
| 2 | 1001 | North | Yes | Yes |
| 3 | 1002 | South | No | No |
| 4 | 1003 | north | Yes | No |
| 5 | 1004 | East | No | No |
| 6 | 1005 | NORTH | Yes | No |
=SI(B2="North";"Yes";"No")La colonne C répond Yes pour North, north et NORTH, parce que = ne tient pas compte de la casse. Quand la casse compte (codes produit, mots de passe), testez plutôt avec EXACT, comme dans la colonne D : seule la ligne qui contient exactement North obtient Yes.
Pour tester tout sauf une valeur, utilisez <> : =SI(B2<>"North";"Standard";"Free"). Pour tester si une cellule contient un mot quelque part, SI a besoin de CHERCHE, présentée sur la page des fonctions EST.
SI avec un calcul
Les résultats de SI ne sont pas forcément du texte. Ici, chaque commercial touche une prime de 5 % sur les ventes au-dessus de 1 000, et rien en dessous :
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Bonus |
| 2 | Ana | $1,400 | $70 |
| 3 | Ben | $800 | $0 |
| 4 | Chloe | $1,000 | $0 |
| 5 | Dan | $2,600 | $130 |
| 6 | Eve | $1,150 | $58 |
=SI(B2>1000;B2*5%;0)Ana reçoit $70 (5 % de 1 400) et Ben $0. Chloe a vendu exactement 1 000, et le test est "supérieur à 1 000", donc elle reçoit aussi $0. Remplacez la formule de C2 par =IF(B2>=1000,B2*5%,0) (en français =SI(B2>=1000;B2*5%;0)) et sa prime passe à $50.
Le test peut aussi comparer deux cellules, =SI(B2>C2;"Over target";"Under target"), ou une cellule et un calcul, =SI(B2>MOYENNE($B$2:$B$6);"Above average";"").
SI une cellule est vide
B2="" vaut VRAI quand B2 est vide. Utilisez ce test pour ignorer les lignes qui n'ont pas encore de données, afin que la colonne de formules ne se remplisse pas de zéros :
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Item | Qty | Price | Total | Status |
| 2 | Pens | 10 | $1.50 | $15.00 | Ordered |
| 3 | Paper | $4.20 | Not ordered | ||
| 4 | Ink | 2 | $18.00 | $36.00 | Ordered |
| 5 | Tape | $2.80 | Not ordered | ||
| 6 | Clips | 5 | $0.90 | $4.50 | Ordered |
=SI(B2="";"";B2*C2)"" (deux guillemets sans rien entre eux) est un texte vide, donc Paper et Tape n'affichent rien dans la colonne D. Tapez une quantité en B3 et le total apparaît. La colonne E teste l'inverse avec <>"", "n'est pas vide".
Une cellule qui contient ="" semble vide mais n'est pas vide pour ESTVIDE. La différence compte quand d'autres formules lisent la colonne : NBVAL, par exemple, la compte.
SI avec deux conditions
SI accepte un seul test. Pour exiger deux choses à la fois, placez ET dans le test ; pour accepter l'une ou l'autre, utilisez OU :
=IF(AND(B2>=50,C2>=50),"Pass","Fail")
=IF(OR(B2="North",B2="South"),"Zone 1","Zone 2")
Dans un Excel français : =SI(ET(B2>=50;C2>=50);"Pass";"Fail") et =SI(OU(B2="North";B2="South");"Zone 1";"Zone 2"). Les deux sont expliquées avec des exemples en direct sur la page ET et OU. Pour trois résultats possibles ou plus (A, B, C, F), imbriquez un SI dans un autre (SI imbriqués) ou utilisez SI.CONDITIONS.
Exercice : commander ou non
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Stock | Minimum | Status |
| 2 | Pens | 12 | 20 | |
| 3 | Paper | 30 | 25 | |
| 4 | Tape | 15 | 12 | |
| 5 | Ink | 8 | 10 |
À vous : En D2, affichez "Reorder" quand le stock de B2 est inférieur au minimum de C2, sinon affichez "OK". La formule est recopiée jusqu'à D5.
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Bonus |
| 2 | Ana | $1,250 | |
| 3 | Ben | $600 | |
| 4 | Chloe | $2,300 |
À vous : En C2, renvoyez une prime de 10 % des ventes de B2 quand les ventes dépassent 1000, et 0 sinon. La formule est recopiée jusqu'à C4.
Erreurs fréquentes avec SI
Des guillemets autour d'un nombre. =SI(B2>"50";"High";"Low") compare B2 au texte "50", pas au nombre 50. Excel classe tous les nombres avant tous les textes, donc le test est FAUX pour n'importe quel nombre en B2 et la formule répond toujours Low. Écrivez les nombres sans guillemets : B2>50.
Utiliser ==. Le test d'égalité d'Excel est un seul =. Taper =SI(B2=="Paid";"Yes";"No") fait refuser la formule par Excel avec le message "There's a problem with this formula" (un problème dans la formule).
Des nombres stockés sous forme de texte. Si B2 contient '12 (du texte qui ressemble à un nombre, souvent issu d'un import), B2>=50 compare du texte à un nombre. Le texte compte toujours comme plus grand, donc le test est VRAI et 12 est reçu. Convertissez d'abord la colonne ; la page texte en nombre explique comment.
Attendre VRAI sous forme de texte. =SI(B2>=50;"VRAI";"FAUX") renvoie les mots sous forme de texte, que les autres formules ne peuvent pas utiliser comme valeurs logiques. Si vous voulez VRAI et FAUX, vous n'avez pas besoin de SI : =B2>=50 les renvoie directement.
Oublier les parenthèses fermantes. Chaque SI ouvre une parenthèse et a besoin de sa propre ). Pendant la saisie, Excel affiche chaque paire de parenthèses dans sa propre couleur, ce qui permet de repérer facilement celle qui manque.
Questions fréquentes
Comment écrire une formule SI ALORS dans Excel ?
Écrivez =SI(test;valeur_si_vrai;valeur_si_faux). Par exemple, =SI(B2>=50;"Pass";"Fail") affiche Pass quand B2 vaut 50 ou plus et Fail sinon. Les résultats texte se mettent entre guillemets, les nombres et les références de cellule non.
Pourquoi ma formule SI renvoie-t-elle FAUX ?
Vous avez oublié le troisième argument. =SI(B2>=50;"Pass") renvoie FAUX quand le test échoue. Ajoutez une valeur pour ce cas, par exemple "" pour afficher une cellule vide : =SI(B2>=50;"Pass";"").
La fonction SI est-elle sensible à la casse ?
Non. =SI(B2="North";"Yes";"No") renvoie Yes pour North, north et NORTH. Pour respecter la casse exacte, utilisez EXACT comme test : =SI(EXACT(B2;"North");"Yes";"No").
Comment faire en sorte que SI laisse une cellule vide ?
Renvoyez une chaîne de texte vide, deux guillemets : =SI(B2="";"";B2*C2) n'affiche rien quand B2 est vide et le produit sinon. La cellule contient tout de même une formule, donc ESTVIDE sur elle renvoie FAUX.
SI peut-elle tester plusieurs conditions ?
Oui. Placez ET ou OU dans le test, =SI(ET(B2>=50;C2>=50);"Pass";"Fail"), ou imbriquez un SI dans un autre pour plus de deux résultats. Dans Excel 2019 et versions ultérieures, SI.CONDITIONS gère plusieurs résultats sans imbrication.