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
- 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.
Mais si vous tapez
deux
points-virgules =SI(A1=2017 ;;), la
fonction SI renvoie toujours 0.
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.
- 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";"")
- Copions la formule dans les
autres cellules de C3 à C10, et voici ce que ça donne :
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 :
=SI(ESTNUM(CHERCHE("CLF";A2));"Oui";"Non")
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.
- En copiant la formule dans les
autres cellules, nous obtiendrons le résultat suivant :
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 :
- 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")
- Puis nous l’avons copiée dans les
cellules qui restent.
- 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")
Voici le résultat après avoir
copié la formule :
2) Nous pouvons aussi taper la date
dans une autre cellule et utiliser sa référence absolue dans notre
formule :
=SI(A2<$D$2;"Date
écoulée";"Date future")
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")
Et voici le résultat donc :
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";"")
- Nous copions ensuite la formule
et voici le résultat obtenu:
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";"")