La fonction SI d'Exel permet de tester une condition. C'est une fonction incontournable dès que l'on souhaite renvoyer une valeur ou un calcul si une condition est vraie et une autre dans le cas contraire.
Vous souhaitez savoir comment utiliser la fonction SI ? Vous vous demandez comment l'utiliser avec du texte ou des dates ? Comment tester plusieurs conditions ? Planète Excel vous dit tout de cette fonction essentielle.
Syntaxe de la fonction SI
La syntaxe de la fonction SI est la suivante :
=SI(condition ; valeur_si_vrai ; valeur_si_faux)
Les opérateurs de comparaison suivants peuvent être utilisés pour effectuer les tests :
= | est égal à |
<> | est différent de |
< | est inférieur à |
<= | est inférieur ou égal à |
> | est supérieur à |
>= | est supérieur ou égal à |
Par exemple, pour savoir si le contenu de la cellule B5 est supérieur ou égal à 1000, il suffira de saisir :
=SI(B5>1000 ; "supérieur ou égal à 1000" ; "inférieur à 1000")
Pour savoir si deux valeurs sont différentes, l’opérateur de comparaison <> doit être utilisé. Pour tester si le contenu de la cellule B5 est différent du terme Produit, il suffira de saisir :
=SI(B5<>"Produit" ; "ne correspond pas à Produit" ; "correspond à Produit")
Faire des calculs avec la fonction SI
Les paramètres valeur_si_vrai et valeur_si_faux de la fonction SI peuvent servir à réaliser des calculs. Vous pouvez ainsi effectuer un calcul si la condition testée est vraie, et un autre si elle est fausse.
Par exemple, pour appliquer un bonus de 5% sur les ventes supérieures à 2000 euros, vous pouvez utiliser la formule suivante :
=SI(A2>=2000 ; A2*5% ; 0)
![Faire un calcul avec la fonction SI Excel](https://planete-excel.fr/wp-content/uploads/fonction-SI-avec-calcul.webp)
Fonction SI avec plusieurs conditions
Vous avez plusieurs conditions à tester ? Vous pouvez utiliser les fonctions ET et OU conjointement avec la fonction SI.
La fonction ET renvoie la valeur VRAI si toutes les conditions sont vraies et renvoie la valeur FAUX si une ou plusieurs conditions sont fausses.
Par exemple, si on souhaite calculer un bonus de 5% sur les ventes du produit A supérieures à 2000 euros, vous pouvez utiliser la formule suivante :
=SI( ET(A2="A" ; B2>=2000) ; B2*5% ; 0)
![Fonction SI Excel avec plusieurs conditions / Fonction ET](https://planete-excel.fr/wp-content/uploads/fonction-SI-avec-ET.webp)
La fonction OU renvoie la valeur VRAI si au moins une condition est vraie et renvoie la valeur FAUX si toutes les conditions sont fausses.
Par exemple, si on souhaite calculer un bonus de 5% sur toutes les ventes du produit A ou sur toutes les ventes supérieures à 2000 euros, vous pouvez utiliser la formule suivante :
=SI( OU(A2="A" ; B2>=2000) ; B2*5% ; 0)
![Fonction SI Excel avec plusieurs conditions / Fonction OU](https://planete-excel.fr/wp-content/uploads/fonction-SI-avec-OU.webp)
Fonction SI avec du texte : contient, commence ou fini par...
La fonction SI peut servir à déterminer si un texte contient, commence ou fini par une expression.
Si le texte contient une expression
Il est facile de tester si une cellule contient du texte qui est égal à une expression. Par exemple, pour tester si la cellule A1 contient le nom LA ROCHELLE, on utilise la formule suivante :
=SI(A1="LA ROCHELLE" ; 1 ; 0)
Si le texte contient en partie une expression
Pour savoir si une cellule contient en partie d'une expression, il n'est pas possible d'utiliser les caractères génériques comme * et ?. Il faut utiliser la fonction SI conjointement à la fonction CHERCHE et la fonction ESTNUM :
- la fonction CHERCHE(expression_cherchée ; texte) recherche un texte au sein d'un autre et renvoie sa position de départ (en caractères). Si l'expression cherchée n'est pas trouvée dans le texte, la fonction renvoie une erreur #ERREUR!.
- la fonction ESTNUM(valeur) permet de vérifier si une valeur est numérique : elle renvoie alors VRAI (et renvoie FAUX dans le cas contraire).
On peut donc tester avec la fonction ESTNUM si la fonction CHERCHE renvoie une valeur numérique (la position du texte cherché) ou non numérique (#ERREUR! si le texte cherché n'est pas trouvé).
Par exemple, la formule suivante va renvoyer FAUX :
=ESTNUM(CHERCHE("PARIS ;"PAS"))
Nous allons donc insérer ces 2 fonctions dans la partie condition de la fonction SI. Par exemple, dans une liste de voiture, si on souhaite marquer chaque ligne d'un X si le type de véhicule est un monospace, on peut utiliser la formule suivante :
=SI(ESTNUM(CHERCHE("Mono ;A2));"X ;"")
![Fonction SI Excel : vérifier si le texte contient en partie une expression / fonction CHERCHE](https://planete-excel.fr/wp-content/uploads/fonction-SI-avec-CHERCHE.webp)
Si le texte ne contient pas une expression
Vérifier si une cellule ne contient pas une expression, on utilise l'opérateur <>. Par exemple, pour tester si la cellule A1 ne contient pas le mot Smartphone, on utilise la formule suivante :
=SI(A1<>"Smartphone" ; 1 ; 0)
Si le texte commence par...
Vous souhaitez savoir si un texte commence par une expression ? Il suffit de combiner la fonction SI avec la fonction GAUCHE. Celle-ci renvoie le nombre de caractères indiqués en commençant par la gauche. Sa syntaxe est :
GAUCHE(texte ; nombre_de_caractères)
Par exemple, si la cellule A1 contient 17000, la formule GAUCHE(A1,2) va renvoyer 17. Pour tester si la cellule A1 contient un code postal du département 17 et afficher un X dans l'affirmative, il suffira de saisir la formule suivante :
=SI(GAUCHE(A1;2)="17" ; "X" ; "")
Si le texte termine par...
Vous souhaitez tester si un texte termine par une expression ? Il faut de combiner la fonction SI avec la fonction DROITE. Celle-ci renvoie le nombre de caractères indiqués en commençant par la droite. Sa syntaxe est :
DROITE(texte ; nombre_de_caractères)
Par exemple, si la cellule A1 contient le n° SIRET 45278432500012, la formule DROITE(A1,5) va renvoyer 00012. Pour tester si la cellule A1 correspond à l'établissement dont le NIC est 00012 et afficher un X dans l'affirmative, il suffira de saisir la formule suivante :
=SI(DROITE(A1;5)="00012" ; "X" ; "")
Fonction SI avec des dates
La focntion SI permet de réaliser des test avec des dates et même des périodes !
Si la date est égale à une date donnée
Pour savoir si une cellule contient une date donnée, évitez de mettre la date à tester entre guillemet comme ceci : "01/01/2024", ce qui risque de vous donner des résultats approximatifs... Utilisez plutôt la fonction DATE.
Par exemple, pour savoir si la cellule A1 contient la date du 01/01/2024 et afficher un X dans l'affirmative, la formule sera :
=SI(A1=DATE(2024;01;01) ; "X" ; "")
Si la date à tester est elle-même dans autre cellule, par exemple B1, il suffit de saisir la formule suivante :
=SI(A1=B1 ; "X" ; "")
Si la date est inférieure ou supérieure à une date donnée
Pour tester si une date est antérieure ou postérieure à une autre, on utilise les opérateurs < et >.
Par exemple, pour savoir si la cellule A1 contient une date supérieure au 01/01/2024 et afficher un X dans l'affirmative, la formule sera :
=SI(A1>DATE(2024;01;01) ; "X" ; "")
On peut également utiliser les opérateurs de comparaison <= et >= pour savoir si la date est supérieure ou égale ou inférieure ou égale à une autre. Ainsi, pour savoir si la cellule A1 contient une date supérieure ou égale au 01/01/2024 et afficher un X dans l'affirmative, la formule sera :
=SI(A1>=DATE(2024;01;01) ; "X" ; "")
Si la date à tester est elle-même dans autre cellule, par exemple B1, il suffit de saisir la formule suivante :
=SI(A1>=B1 ; "X" ; "")
Si la date est comprise dans une fouchette de deux autres dates
Pour savoir si une date est comprise dans une période comprise entre deux autres dates, il faut utiliser la fonction SI conjointement avec la fonction ET.
Par exemple, pour savoir si la date contenue dans la cellule A1 est comprise entre le 01/01/2024 et le 31/12/2024, la fonction ET est utilisée de la manière suivante pour renvoyer VRAI ou FAUX selon le cas :
ET(A1>=DATE(2024;1;1) ; A1<=DATE(2024;12;31))
On peut imbriquer cette fonction dans la fonction SI pour afficher un X si le résultat est vrai, ou rien si le résultat est faux :
=SI(ET(A1>=DATE(2024;1;1) ; A1<=DATE(2024;12;31)) ; "X" ; "")
Si les dates de la période sont elles-mêmes contenues dans des cellules, par exemple B1 et C1, il suffit de saisir la formule suivante :
=SI(ET(A1>B1 ; A1<=C1) ; "X" ; "")
Fonctions SI imbriquées
Comment imbriquer plusieurs fonctions SI ?
Nous avons vu qu'une fonction SI peut avoir deux résultats : une valeur si la conditions est vraie, une valeur si la condition est fausse.
Comment faire si vous avez plus de 2 conditions à tester ? Vous pouvez utiliser des fonctions SI imbriquées les unes dans les autres.
Plutôt que saisir une valeur si vrai ou une valuer si faux, on peut saisir une autre fonction SI !
Imaginons que l'on souhaite vérifier l'état d'avancement d'une tâche selon que celle-ci est non commencée, en cours ou terminée, et renvoyer 0, 1 ou 2 selon le cas. On peut saisir la formule :
=SI(B1="non commencée ; 0 ; SI(B1="en cours" ; 1 ; SI(B1="terminée" ; 2 ; "")))
![Excel : fonctions SI imbriquées](https://planete-excel.fr/wp-content/uploads/fonctions-SI-imbriquees.webp)
Ce type de formule est très efficace pour réaliser des tests en cascade. Attention malgré tout à bien compter vos parenthèses en fin de formule, pour éviter les erreurs...
Gagner du temps avec la fonction SI.CONDITIONS
La fonction SI.CONDITIONS teste si une ou plusieurs conditions sont remplies et renvoie la valeur correspondant à la première condition vraie. Cette fonction est plus facile à lire que les fonctions SI imbriquées : plus besoin de se soucier des parenthèses de chaque fonction SI imbriquée !
Sa syntaxe est la suivante :
=SI.CONDITIONS([test1; valeur_si_vrai1; test2; valeur_si_vrai2; test3; valeur_si_vrai3)
Si aucun résultat n’est trouvé, SI.CONDITIONS retourne l’erreur #N/A.
Pour vérifier l'état d'avancement d'une tâche selon que celle-ci est non commencée, en cours ou terminée, et renvoyer 0, 1 ou 2 selon le cas, on peut saisir la formule :
=SI.CONDITIONS(B2="non commencée ; 0 ; B2="en cours ; 1 ; B2="terminée ; 2)
Retrouvez le fil du cours :
« Utiliser les fonctions Texte avec Excel | Fonction RECHERCHEX » |
---|