Menu

Fonction SI Excel : formule SI, exemples et erreurs (IF)

=SI(B2>=50;"Pass";"Fail") vérifie si B2 vaut 50 ou plus et renvoie Pass si c'est le cas, Fail sinon. La syntaxe de SI, SI avec du texte, SI avec un calcul, SI une cellule est vide, et les erreurs qui faussent le résultat.

Chaque feuille de cette page est interactive : modifiez un nombre ou une formule et elle se recalcule.

=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").

Reçu ou recalé
C2
ABC
1StudentScoreResult
2Ana72Pass
3Ben45Fail
4Chloe50Pass
5Dan38Fail
6Eve91Pass
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =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.

Livraison gratuite pour la région North
C2
ABCD
1OrderRegionFree deliveryExact case
21001NorthYesYes
31002SouthNoNo
41003northYesNo
51004EastNoNo
61005NORTHYesNo
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =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 :

Prime au-dessus de 1 000
C2
ABC
1RepSalesBonus
2Ana$1,400$70
3Ben$800$0
4Chloe$1,000$0
5Dan$2,600$130
6Eve$1,150$58
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =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 :

Ignorer les lignes sans quantité
D2
ABCDE
1ItemQtyPriceTotalStatus
2Pens10$1.50$15.00Ordered
3Paper$4.20Not ordered
4Ink2$18.00$36.00Ordered
5Tape$2.80Not ordered
6Clips5$0.90$4.50Ordered
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =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

Contrôle des stocks
D2
ABCD
1ItemStockMinimumStatus
2Pens1220
3Paper3025
4Tape1512
5Ink810
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À 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.

Une prime de 10 %
C2
ABC
1RepSalesBonus
2Ana$1,250
3Ben$600
4Chloe$2,300
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À 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.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER