Résumé
La fonction SI permet d’effectuer un test logique et de renvoyer des résultats différents selon le résultat du test (VRAI/FAUX). La fonction seule ne permet pas d’ajouter d’autres conditions. Cependant, il existe plusieurs autres solutions.
Utiliser la fonction ET : elle permet d’ajouter plusieurs conditions. On vérifiera alors que toutes les conditions se révèlent exactes.
= SI( ET( C3>=10 ; D3>=10 ) ; "ok" ; "réappro" )
On vérifie que le stock A et le stock B soient supérieurs ou égals à 10.
Utiliser la fonction OU : elle permet d’ajouter d’autres conditions. On vérifiera alors qu’au moins une des conditions se révèle exacte.
= SI( OU( C3>=10 ; D3>=10 ) ; "ok" ; "réappro" )
On vérifie que le stock A ou le stock B soient supérieurs ou égals à 10.
Imbriquer les fonctions SI : il s’agit ici de placer une fonction SI en lieu et place du résultat renvoyé par la première fonction SI. On obtient un raisonnement en cascade.
= SI( C3>=10 ; "ok" ; SI( (C3+D3)>=10 ; "ok" ; "réappro" ) )
On vérifie que le stock A soit supérieur ou égal à 10 et si ce n’est pas le cas, que les stocks cumulés de A et B soient supérieurs ou égals à 10.
Utiliser une formule booléenne : le principe est le même qu’avec l’utilisation de la fonction ET. On va ajouter plusieurs conditions grâce à une syntaxe particulière. Cette solution n’est valable qu’à partir d’Excel 35.
= SI( (C3>=10)*(D3>=10) ; "ok" ; "réappro" )
On vérifie que le stock A et le stock B soient supérieurs ou égals à 10.
Formule Excel – Si plusieurs conditions
Vérifier que toutes les conditions soient exactes :
= SI( ET( test_1 ; test_2 ) ; résultat_si_vrai ; résultat_si_faux )
ou
= SI( (test_1 )*(test_2) ; résultat_si_vrai ; résultat_si_faux )
Vérifier qu'au moins une condition soit exacte :
= SI( OU( test_1 ; test_2 ) ; résultat_si_vrai ; résultat_si_faux )
Appliquer un raisonnement en cascade :
= SI( test ; SI(...) ; SI(...) )
Explications
Pour effectuer une fonction SI avec plusieurs conditions, la fonction seule ne suffit pas. Il faut la combiner avec d’autres fonctions comme :
- la fonction ET ;
- la fonction OU.
Dans la majorité des cas ces fonctions suffiront pour obtenir les résultats voulus. On pourra également les combiner entre elles pour avoir des critères plus complexes. Face à certaines situations, elles ne suffiront pas. On pourra alors se tourner vers l’imbrication de fonctions SI les unes dans les autres.
La fonction SI
La fonction SI effectue un test logique puis retourne un résultat différent suivant que le résultat soit VRAI ou FAUX. La syntaxe de la fonction est :
= SI( test_logique ; résultat_si_vrai ; résultat_si_faux )
Dans notre exemple, nous pouvons vérifier si le stock A des chaises est supérieur à 10 et renvoyer les valeurs « oui » ou « non » :
= SI( C3>10 ; "oui" ; "non" )
--> Résultat : "oui"
Le même exemple sur le stock A de bureaux donne :
= SI( C5>10 ; "oui" ; "non" )
--> Résultat : "non"
La fonction ET
La fonction ET cumule plusieurs tests logiques et renvoie VRAI si tous les tests renvoient VRAI. Si un seul test renvoie FAUX, le résultat sera FAUX. Sa syntaxe :
= ET( test_1 ; test_2 ; ... )
Voici quelques exemples des résultats renvoyés par la fonction ET dans notre cas :
= ET( C3>10 ; D3>10 ) --> FAUX
= ET( C4>=10 ; D4>=10 ) --> VRAI
= ET( B3="Chaise" ; C3<20 ) --> VRAI
Parce que la fonction ET renvoie comme résultat VRAI ou FAUX, elle peut être placée en tant que test logique au sein de la fonction SI. On obtient :
= SI( ET( test_1 ; test_2 ) ; résultat_si_vrai ; résultat_si_faux )
Dans notre cas, nous voulons vérifier que les stocks de A et B sont supérieurs ou égals à 10. Si c’est le cas, la valeur « ok » s’affiche. Dans le cas contraire, nous voulons la valeur « réappro » pour nous indiquer la nécessité de réapprovisionner le stock.
= SI( ET( C3>=10 ; D3>=10 ) ; "ok" ; "réappro" )
--> Résultat : "réappro"
La fonction OU
La fonction OU cumule plusieurs tests logiques et renvoie VRAI si au moins un test se révèle VRAI. Seul dans le cas où tous les tests sont FAUX, elle renvoie la valeur FAUX. Sa syntaxe est :
= OU( test_1 ; test_2 ; ... )
Voici quelques exemples des résultats renvoyés par la fonction OU dans notre cas :
= OU( C3>10 ; D3>10 ) --> VRAI
= ET( C4>=10 ; D4>=10 ) --> VRAI
= ET( B3<>"Chaise" ; C3>20 ) --> FAUX
La fonction OU placée en tant que test logique au sein de la fonction SI permet d’ajouter plusieurs conditions et de s’assurer qu’au moins une d’entre elles soit remplie. On obtient :
= SI( OU( test_1 ; test_2 ) ; résultat_si_vrai ; résultat_si_faux )
Dans notre cas, nous voulons vérifier que le stock A ou le stock B soit supérieur ou égal à 10. Si c’est le cas, la valeur « ok » s’affiche.
= SI( OU( C3>=10 ; D3>=10 ) ; "ok" ; "réappro" )
--> Résultat : "ok"
Imbriquer des fonctions SI
Le résultat renvoyé par une fonction SI n’est pas obligatoirement du texte ou une valeur numérique. Il peut s’agir d’un calcul ou d’une fonction. En tant que résultat d’une première fonction SI, nous pouvons mettre une autre fonction SI. Nous obtenons alors un raisonnement en cascade.
= SI( test_1 ; SI(...) ; SI(...) )
Dans notre exemple, nous voulons vérifier dans un premier temps si le stock A est supérieur à 10 :
= SI( C3>=10 ;
Si c’est le cas, nous souhaitons retourner la valeur « ok » :
= SI( C3>=10 ; "ok" ;
Dans le cas contraire, nous voulons vérifier si le stock cumulé de A et B est supérieur à 10 :
= SI( C3>=10 ; "ok" ; SI( (C3+D3)>=10 ;
Si le stock cumulé est supérieur à 10, nous voulons afficher « ok ». Dans le cas contraire nous voulons « réappro » :
= SI( C3>=10 ; "ok" ; SI( (C3+D3)>=10 ; "ok" ; "réappro" ) )
Il est possible de rendre cette formule plus facile à lire en effectuant des retours à la ligne et des espaces (dépend de la version d’Excel) :
= SI( C3>=10 ;
"ok" ;
SI( (C3+D3)>=10 ;
"ok" ;
"réappro"
)
)
Formule booléenne
Selon votre version d’Excel, vous êtes en capacité d’utiliser des formules booléennes dans les fonctions standards. Le résultat est le même que si vous utilisez la fonction ET mais la syntaxe est plus épurée.
= SI( (C3>=10)*(D3>=10) ; "ok" ; "réappro" )
Un booléen est une variable à deux états tels que VRAI/FAUX ou 1/0. Lorsque nous effectuons un test logique, nous mettons en oeuvre une logique booléenne.
= C3>= 10
--> Résultat : VRAI
Il est possible de faire des opérations entre des booléens. VRAI sera interprété comme la valeur 1 et FAUX comme la valeur 0 :
= VRAI * 0 --> 0
= VRAI * 1 --> 1
= FAUX * 0 --> 0
= VRAI * 14 --> 14
En utilisant cette logique booléenne, nous pouvons réaliser des opérations avec plusieurs tests logiques :
= (C3>=10)*(D3>=10)
= VRAI * FAUX
= 1 * 0
--> Résultat: 0 (équivalent à FAUX)
La fonction SI accepte en tant que résultat du test logique VRAI/FAUX ou 1/0. Nous pouvons alors mettre notre formule booléenne en tant que test logique de la fonction SI :
= SI( (C3>=10)*(D3>=10) ; "ok" ; "réappro" )
Fonction SI.CONDITIONS
La fonction SI.CONDITIONS permet également de gérer plusieurs conditions. Elle teste un ensemble de critères et affiche la valeur dont le premier test sera concluant. Elle renvoie le résultat du premier test VRAI. Elle évite dans certains cas de faire des fonctions SI imbriquées dans vos cellules Excel.
--- Exemple avec des mois ---
=SI.CONDITIONS(
A1=1; "Janvier";
A1=2; "Février";
A1=3; "Mars";
...)
--- Exemple avec des jours de la semaine ---
=SI.CONDITIONS(
A1=1; "Lundi";
A1=2; "Mardi";
A1=3; "Mercredi";
...)
--- Exemple avec des notations d'élèves ---
=SI.CONDITIONS(
A1>=18; "A+";
A1>=16; "A";
A1>=14; "A-";
...)
Cependant, les cas d’usage sont relativement rares. C’est pourquoi, elle ne sera pas plus explorée dans cet article.
Les combiner
Maintenant que vous connaissez différentes solutions, il est tout à fait possible de les combiner les unes avec les autres. Vous pouvez placer des fonctions OU à l’intérieur de fonctions ET tout en imbriquant les fonctions SI les unes dans les autres.
= SI( B3="Chaise" ;
SI( OU( ET( C3>=10 ; D3>=10 ) ; (C3+D3>=15) ) ;
"ok" ;
"réappro"
) ;
"" )
Dans cet exemple, on vérifie si l’article est « Chaise » et si c’est le cas on vérifie que les stocks A et B soient tous les deux supérieurs à 10 ou la somme des deux supérieure à 15. Si c’est le cas, on affiche « ok » sinon « réappro ». Si l’article n’est pas « Chaise » on renvoie une valeur vide.
Formules en lien
- Si cellule égale à
- Si cellule égale à (sensible à la casse)
- Si cellule contient un texte
- Si cellule contient un texte (sensible à la casse)
- Si cellule contient texte alors 1
- Si cellule contient une valeur supérieure ou égale à
- Si cellule vide alors rien
- Si cellule vide alors copier
- Si alors
- Si cellule inférieure ou égale à
- Si date supérieure à une autre date
- Si date dépassée alors