L’article présent de la formation Excel explique comment utiliser la fonction SI avec des textes, des nombres et des dates à travers des exemples vous présentant des solutions à des problèmes qui peuvent survenir lors de l’utilisation incorrecte des paramètres de cette fonction.
La fonction SI est une fonction
conditionnelle qui fait partie des fonctions logiques, et elle est l’une des
fonctions les plus populaires d’Excel, elle permet de spécifier un test logique
à effectuer.
Sa syntaxe prend la forme
suivante :
Si(test_logique ;[valeur_si_vrai] ;[valeur_si_faux])
A partir de cette syntaxe vous
pouvez déduire que la condition que vous spécifiez dans l’argument test_logique
doit renvoyer soit la valeur VRAI soit la valeur FAUX.
Alors, si la condition est
respectée c’est-à-dire qu’elle renvoie la valeur VRAI, la fonction SI applique
ce que vous avez introduit dans le deuxième argument [valeur_si_vrai] ,si
non, c’est-à-dire que la condition n’est pas respectée et qu’elle renvoie la
valeur FAUX, la fonction SI applique alors ce que vous avez spécifié dans le
troisième argument : [valeur_si_faux].
Un petit exemple :
Dans la cellule A1 nous avons
tapé 2017.
Et dans la cellule A2 nous avons
entré la formule suivante : =SI(A1=2017;"Année en
cours";"Année différente")
Notre test logique est A1=2017.
C’est-à-dire que la fonction SI doit vérifier si la cellule A1 contient 2017 ou
non.
Dans notre cas A1 contient 2017,
ce qui est VRAI. La fonction SI applique donc ce qui est défini dans le
deuxième argument : Afficher « Année en cours » dans A2.
- Remplaçons maintenant 2017 par 2018.
Notre test reste le même A1=2017,
mais la condition n’est pas respectée cette fois : A1 ne contient pas 2017, notre
test renvoie donc FAUX. Dans ce cas la fonction SI passe au troisième argument
et applique ce qui est demandé : Afficher le texte « Année différente ».
Note : Pour vérifier si
notre condition renvoie une valeur logique (VRAI ou FAUX), nous pouvons faire
un test en tapant dans la cellule B1 la formule suivante : =A1=2017
Que pouvez-vous spécifier comme
condition dans le premier argument test_logique ?
Que votre condition spécifiée
traite du texte, des nombres, des dates ou utilise des opérateurs de
comparaison, ou est sous forme de formules, l’essentiel est qu’elle doit
renvoyer une valeur logique (VRAI ou FAUX).
Et quelle valeur renvoie la fonction SI après avoir testé la condition spécifiée ?
Comme nous l’avons montré précédemment,
l’un des deux résultats que vous avez déterminé dans l’argument valeur_si_vrai
ou l’argument valeur_si_faux sera renvoyé.
Ce résultat pourra être un texte,
un nombre, une date, un calcul mathématique ou un résultat d’une formule
effectuée.
Les deux arguments [valeur_si_vrai] et [valeur_si_faux] sont optionnels
En revenant à la syntaxe de la
fonction SI, vous remarquez que les deux arguments valeur_si_vrai et
valeur_si_faux sont écrits entre deux crochets, cela signifie dans Excel que
ces arguments ne sont pas obligatoires et que vous pouvez les omettre.
- Reprenons l’exemple précédent et entrez la formule suivante dans A2
=SI(A1=2017;)
- Dans ce cas, la fonction SI vérifie la condition spécifiée et applique seulement le premier argument, et puisque nous avons laissé cet argument vide, Excel affiche ces valeurs par défaut :
- Si renvoie 0 si la condition est respectée ; si non elle renvoie FAUX.
En effet, la fonction SI renvoie par défaut 0 comme nous l’avons vu à l’instant si la condition est remplie (en appliquant le premier argument vide) , et lorsque la condition n’est pas remplie la fonction SI va appliquer cette fois le deuxième argument, et comme il est vide à son tour, la fonction SI renvoie par défaut la valeur 0 également.
Dans la plupart des cas, les deux
arguments [valeur_si_vrai] et [valeur_si_faux] sont toujours définis par
les utilisateurs, pour rendre mieux compréhensibles les résultats renvoyés par
la fonction SI. Sauf dans le cas où vous aimeriez
par exemple que la fonction SI ne renvoie rien, pour cela faites entrer les doubles guillemets "" dans ces arguments.
Examinons maintenant de près ces
exemples qui suivent pour mieux comprendre l’utilisation de la fonction SI :
Fonction SI traitant des conditions textuelles
Exemple 1 : Condition portant sur un texte exact
L’exemple suivant montre l’état
de traitement des dossiers: Payé, ,enregistré, en cours de traitement ...
En utilisant la fonction SI nous aimons sélectionner uniquement les dossiers qui se sont payés.
En utilisant la fonction SI nous aimons sélectionner uniquement les dossiers qui se sont payés.
- Nous allons donc entrer la formule suivante dans la cellule C2 : =SI(B2="Payé";"Oui";"") et nous la copierons dans les cellules de C3 à C10.
Remarquez donc que le mot
« Payé » dans le test_logique est mis entre guillemets puisque c’est
du texte.
Note : la fonction SI
n’oblige pas de respecter la casse en entrant le mot « Payé ». si
vous l’écrivez en minuscule (payé) ou en majuscule (PAYÉ), rien ne change.
Exemple 2 : Attention aux espaces avant et après le texte !!
Si nous reprenons l’exemple
précédent et nous appliquons la même formule utilisée dans cet exemple, nous
pouvons avoir un résultat non désiré.
- Remarquez par exemple les deux cellules B8 et B10, elles contiennent le mot « Payé » mais la fonction SI renvoie du vide au lieu de la valeur « Oui ».
- Le problème vient des espaces que nous avons tapés avant le mot "Payé" dans la cellule B8 et après le mot "Payé" dans la cellule B10.
- Pour résoudre ce type de problème, nous utilisons la fonction SUPPRESPACE qui permet de supprimer les espaces du texte sauf bien sûr les espaces qui se trouvent entre les mots.
- Voici donc la nouvelle formule à entrer dans la cellule C2:
=SI(SUPPRESPACE(B2)="Payé";"Oui";"")
Exemple 3 : Condition portant sur une partie du texte
Dans cet exemple, nous désirons
afficher devant les cellules contenant « CLF » la réponse Oui, ou bien
afficher Non dans le cas contraire.
- Dans la cellule B2 nous allons entrer la formule suivante :
Comme vous pouvez le remarquer,
nous avons imbriqué deux fonctions dans la fonction SI :
- La fonction CHERCHE qui renvoie le numéro de position de la première lettre du mot recherché si ce dernier est trouvé, si non elle renvoie une valeur d’erreur #Valeur.
- La fonction ESTNUM vérifie si la valeur testée est numérique ou non. Elle va donc tester la valeur renvoyée par la fonction CHERCHE, si cette valeur est un nombre, ESTNUM renvoie VRAI, si cette valeur n’est pas un nombre, ESTNUM renvoie alors FAUX.
Après ces deux étapes, intervient
la fonction SI, qui va vérifier à son tour si la valeur renvoyée enfin par la
fonction ESTNUM est VRAI, dans ce cas elle affiche Oui, si non elle affiche
Non.
Utiliser la fonction SI avec test logique portant sur des nombres
Exemple 1 : Calculer une prime si
Dans l’exemple suivant, nous
allons calculer une prime d’un chiffre d’affaire s’il est supérieur à 10000 euros
en multipliant ce chiffre d’affaire par 3%.
- La formule qui sera utilisée est la suivante :
=SI(A2>10000;A2*3%;0)
Remarquez que le montant 10000
est écrit sans guillemets parce qu’il est de type numérique.
Remarquez aussi que nous avons
défini dans l’argument valeur_si_vrai une formule A2*3% qui sera effectuée
lorsque la condition sera remplie.
Exemple 2 : Attention ! Quantité de stock épuisée !
Dans cet exemple, nous voulons
afficher un message lorsque la quantité de stock est inférieure à 50.
- Pour cela, nous utilisons la fonction SI de la façon suivante :
=SI(A2<50;"Epuisée";"")
- La cellule A2 contient une quantité supérieure à 50, la cellule B2 n’affiche rien donc. Et en copiant la formule dans les autres cellules nous aurons ce résultat :
Fonction SI avec test logique portant sur des dates
Exemple 1 : comparaison de deux dates
Le tableau suivant comporte une
liste des dates de rendez-vous différentes. Nous estimons savoir si la date
d’un rendez-vous pris est écoulée ou pas encore.
- Pour cela nous avons entré la formule suivante dans la première cellule B2 :
=SI(A2<"24/04/2017";"Date
écoulée";"Date future")
- Mais le problème c’est que notre formule nous renvoie Date écoulée même si la date du rendez-vous est inférieure à la date d’aujourd’hui (24/04/2017)
- La cause de ce problème est que la fonction SI ne traite pas les dates contenues dans ses paramètres et écrites comme ça « 24/04/2017 » ou comme ça 24/04/2017 comme des valeurs de type date. Elle les considère comme des chaines de texte.
- Pour dépasser donc ce problème, vous devez convertir votre date saisie en numéro de série reconnu par Excel comme une date.
- Par exemple le numéro de série de la date écrite sous forme de 24/04/2017 est 42849.
1) Alors, notre formule pourra
s’écrire comme ça :
=SI(A2<42849;"Date
écoulée";"Date future")
2) Nous pouvons aussi taper la date
dans une autre cellule et utiliser sa référence absolue dans notre
formule :
Note : lorsque vous écrivez
une date dans une cellule, Excel la stocke sous la forme d’un numéro de série
séquentiel afin qu’elle soit utilisable dans des calculs.
3) Ou bien utiliser la fonction
DATEVAL qui permet de convertir la date écrite dans le test logique en numéro
de série.
Voici notre formule
obtenue :
=SI(A2<DATEVAL("24/04/2017");"Date
écoulée";"Date future")
Note : Vous devez écrire
votre date entre des guillemets, si non la fonction DATEVAL renvoie une erreur
de type #VALEUR !
Exemple 2 : utiliser un calcul de date dans le test logique
Par exemple, une agence a l’habitude
de rappeler ses clients de leurs rendez-vous et ceci 10 jours avant la date
fixée.
- Pour cela nous allons utiliser la fonction SI pour nous renvoyer un message texte par exemple « Rappelez » lorsqu’il reste 10 jours ou moins à la date du rendez-vous.
- Dans la cellule B2, nous allons donc taper la formule suivante :
=SI(A2-AUJOURDHUI()<=10;"Rappelez";"")
Vous pouvez améliorer la formule
pour que la fonction SI affiche un message vous informant précisément du nombre
de jours restés.
=SI(A2-AUJOURDHUI()<=10;"Il
vous reste " &A2-AUJOURDHUI()&" jours";"")