<< Retour au sommaire

 

La fonction SI

 

 

 

Le sommaire :

1.      Introduction ;

2.      La syntaxe de base ;

3.      Les opérateurs de comparaisons ;

4.      La syntaxe complète ;

5.      Une astuce d’affichage ;

6.      L’imbrication ;

6.1  Introduction à l’imbrication ;

6.2  Imbriquer une fonction classique ;

6.3  Imbriquer un « SI » dans un « SI » ;

7.      Les opérateurs logiques ;

7.1  Le « ET » logique ;

7.2  Le « OU » logique ;

8.      Insérer un « SI » depuis l’assistant ;

9.      Les fonctions de vérifications ;

9.1  Présentation ;

9.2  La fonction « estvide » ;

9.3  La fonction « esttexte » ;

9.4  La fonction « estnontexte » ;

9.5  La fonction « estnum » ;

10. La fonction NB pour les statistiques ;

 

 

Introduction

 

La fonction « SI » permet de vérifier une condition et d’en déterminer un traitement si, et uniquement si, la condition est vraie.

 

Cette fonction est dite « embranchement conditionnelle ».

Dans un langage plutôt familier, on pourrait illustrer l’emploi de la fonction « SI » de la façon suivante :

·        Si « expression=vraie », Alors réalise cette opération.

Par exemple :

·        Si « la cellule A2 est égale à 18 », Alors Affiche « Très bonne note ! ».

 

Dans cet exemple, vous devriez déduire qu’aucun traitement n’est prévu dans le cas contraire, c’est-à-dire dans le cas où l’expression est fausse…

C’est normal, afin d’introduire la fonction « SI », j’ai retenu la syntaxe la plus simple.

Mais rassurez-vous, la fonction « SI » peut prendre des allures abominables !

 

Toujours est-il, dans le cadre de l’élaboration d’un classeur performant, cette fonction est incontournable…

Grâce à elle, les situations ne sont pas figées, l’exécution de traitements et d’opérations varient selon les résultats, des valeurs, etc.

 

Vous devez donc fournir les efforts nécessaires…

 

Remarque :

·        Les différents arguments de la fonction « SI », comme dans toutes les fonctions, sont séparés par un « point virgule ».

 


La syntaxe de base

 

La syntaxe :

=si(expression;traitement)

 

Description :

« Expression » est une opération de comparaison, par exemple :

=si(A1=18;traitement)

Ici, si la valeur de la cellule A1 est égale à 18, le traitement est exécuté.

Sinon, rien ne se passe…

 

« Traitement » est l’opération à réaliser si « Expression » est vraie ».

Par exemple, pour afficher « bravo » si la note est égale à 18 :

=si(A1=18;"Bravo")

 

Vous noterez  que « Bravo » a été placé entre guillemets, c’est ainsi qu’EXCEL sera en mesure de distinguer une chaîne de caractères à des références de cellules ou à des fonctions.

Seules les valeurs numériques n’ont pas besoin d’être encapsulées dans des guillemets, c’est la raison pour laquelle, dans l’expression, 18 est libre comme le vent !

 

Mais si on avait comparé la valeur de la cellule A1 à une chaîne de caractères, on aurait dû employer les guillemets, par exemple :

=si(A1="toto";"Bonjour toto !")

Ici, vous avez probablement deviné le rôle de la formule !

·        Si la valeur de la cellule A1 est « toto », on affiche « Bonjour toto ! ».

 

Bien sûr, le résultat retourné par la fonction « Si », est affiché dans la cellule contenant la formule.

 


Les opérateurs de comparaisons

 

Afin de pouvoir réaliser plusieurs types de comparaisons à l’intérieure de l’expression de la fonction « SI », un certain nombre d’opérateurs est à votre disposition.

 

§  Pour « égal », = (égal) ;

§  Pour « différent », <> (inférieur-supérieur) ;

§  Pour « strictement plus petit que », < (inférieur) ;

§  Pour « strictement plus grand que », > (supérieur) ;

§  Pour « inférieur ou égal », <= « inférieur-égal) ;

§  Pour « supérieur ou égal », >= (supérieur-égal) ;

 


La syntaxe complète

 

Dans la première syntaxe que je vous ai proposée, un traitement était prévu dans le cas où l’expression était vraie, mais rien de prévu dans le cas contraire…

 

La syntaxe :

=si(expression;traitement1 ;traitement2)

 

Description :

« Expression » est une opération de comparaison, par exemple :

=si(A1=18;traitement1 ;traitement2)

Ici, si la valeur de la cellule A1 est égale à 18, traitement1 est exécuté.

Sinon, traitement2 est exécuté.

 

« Traitement1 » est l’opération à réaliser si « Expression » est vraie ».

« Traitement2 » est l’opération à réaliser si « Expression » est fausse».

 

Par exemple, pour afficher « bravo » si la note est supérieure ou égale à 18, et « nul » dans le cas contraire :

=si(A1>=18;"Bravo" ; »nul »)

 


Une astuce d’affichage

 

Dans le cas de l’emploi de la fonction « SI » dans sa syntaxe la plus légère, c’est-à-dire lorsqu’aucun traitement n’est prévu pour une expression fausse, le souci est que la valeur affichée dans la cellule est FAUX.

« FAUX », pas très esthétique dans une feuille de calculs !

Si vous désirez palier à ce problème d’affichage, il vous suffit de prévoir un traitement qui affiche une chaîne vide dans le cas où l’expression est fausse !

Une chaîne vide, ça s’écrit tout simplement avec 2 guillemets qui ne contiennent aucun caractère.

Contrairement à l’idée reçue, vous ne devez pas placer un « espace » entre les guillemets, un « espace » étant lui-même un caractère !

 

Par exemple :

=si(a1>=18;"Bravo";"")

 


L’imbrication

 

Introduction à l’imbrication

 

Alors là, ça se corse !

En effet, à l’intérieure d’une fonction « SI », une fonction traditionnelle peut être employée comme traitement.

C’est ce que vous allez découvrir dans le chapitre suivant…

Ensuite, et c’est là le pire, vous allez apprendre à imbriquer un « SI » comme traitement à un « SI ».

 

Imbriquer une fonction classique

 

Voici un exemple :

§  Dans la cellule A6, une formule doit calculer la somme de la plage de cellules a2:A5, et ce, uniquement si le titre de cette colonne est « Calcul à faire SVP ».

Dans le cas contraire, la formule affichera une chaîne vide afin de conserver la discrétion…

 

Calcul à faire SVP

111

122

133

144

=si(A1="Calcul à faire SVP";somme(A1:A5);"")

 

Imbriquer un « SI » dans un «  SI »

 

Même si cette solution n’est pas forcément pratique dans la mesure où il est possible, bien souvent, d’employer des fonctions logiques dans l’expression de la fonction « SI » pour combiner plusieurs conditions, on doit malgré tout savoir ce qu’il faut savoir…

Alors sachez qu’il est possible d’imbriquer une fonction « SI » dans le traitement d’un « SI », et ce, afin de vérifier une succession de conditions, un point c’est tout.

 

Dans l’exemple qui suit, on reprend le même exemple que dans le chapitre précédent, seulement, on rajoute une nouvelle condition pour que la somme de la colonne soit réalisée si 2 conditions sont remplies.

1.         Il faut d’abord vérifier si la valeur de la cellule A1 est « Calcul à faire SVP » ;

2.         Si cette condition est vérifiée, on contrôle qu’il y ait bien une valeur dans la cellule A1 ;

 

Voici maintenant la liste des cas de figures et les traitements qui en découlent :

  1. La valeur de A1 est « calcul à faire SVP « , et une valeur est présente dans A2, alors on réalise la somme de la colonne ;
  2. La valeur dans A1 est toujours « calcul à faire SVP », mais cette fois, aucune valeur n’est présente dans A2, alors on affiche « Valeur manquante dans A2 » ;
  3. La valeur de A1 n’est pas « calcul à faire SVP », alors on affiche une chaîne vide ;

 

Voici la colonne :

 

Calcul à faire SVP

111

122

133

144

=SI(A1="calcul à faire SVP";SI(A2<>"";SOMME(A2:A5);"Valeur manquante dans A1");"")

 

Remarque :

§  EXCEL 2010 accepte jusqu’à 64 niveaux d’imbrications !

 


Les opérateurs logiques

 

Le « ET » logique

 

Voici des fonctions qu’elles sont géniales !

Pour commencer, je vous présente le « et » logique.

 

Ici, nous emboîtons plusieurs conditions dans l’expression du « SI ».

Le fait de pouvoir réunir plusieurs expressions, on le doit à la fonction « ET », dont en voici la syntaxe :

 

La syntaxe :

=si(et(condition1;condition2;condition3);traitement1;traitement2)

 

La description :

Dans cette syntaxe, nous avons 3 conditions dans le « ET », mais sachez que le nombre de conditions pouvant être spécifié est presque illimité.

 

Pour que traitement1 puisse être exécuté, il faudra que toutes les conditions placées dans la fonction « Et » soient vraies !

 

En reprenant l’exemple du chapitre précédent, regardez comment on peut écrire la formule…

=SI(ET(A1="calcul à faire SVP";A2<>"");SOMME(A2:A5);"Valeur manquante dans A2 ou intitulé incorrect dans A1")

 

La seule différence cependant avec la formule précédente, c’est qu’ici, avec le « ET », les 2 conditions sont vérifiées en une seule fois, et du coup, nous ne pouvons prévoir qu’un seul traitement d’erreur…

 


Le « OU » logique

 

C’est un peu comme son frère le « et », mais cette fois-ci, il faut qu’au moins une seule condition soit vraie pour que le traitement associé soit exécuté.

Oui, une seule condition suffit, contrairement à la fonction « et » ou là, toutes les conditions devaient être vraies…

 

Dans l’exemple qui suit, la somme des cellules A1 et A2 sera réalisée uniquement si des valeurs sont présentes dans les cellules.

 

144 €

555 €

=si(ou(A1="";A2="");"Valeur manquante";somme(A1;A2))

 


Insérer un « SI » depuis l’assistant

 

Je vous propose maintenant d’insérer un « SI » depuis l’assistant d’insertions de fonctions.

 

Dans A1, il y aura un prénom.

Dans A2, une formule devra dire bonjour si une valeur est présente dans A1, sinon, le message à afficher sera :

« Valeur manquante dans A1 ».

 

Dans A1, saisissez votre prénom.

Maintenant, Positionnez-vous dans A2.

 

Activez l’option du menu classique :

ALT, « Onglet menu classique », « Insertion|Insérer une fonction ».

Ou par le ruban :

ALT, « Onglet formule », « Insérer une fonction ».

 

Une boîte de dialogue apparaît à l’écran, vous êtes directement dans une zone d’édition, saisissez SI et pressez la touche « Entrée ».

Ensuite, faites tabulation jusqu’au bouton « Ok » et pressez la touche « Entrée ».

 

Un assistant vous invite à saisir les différents Arguments de la fonction !

1.        Première zone d’édition intitulée « Test_logique », saisissez A1<>"" ;

2.        Deuxième zone d’édition intitulée « Valeur_si_vrai », saisissez "Bonjour "&A1 (le & permet ici de concaténer une chaîne de caractères et la valeur de la cellule A1) ;

3.        Troisième zone d’édition intitulée « Valeur_si_faux », saisissez ""Valeur manquante dans A1" ;

 

Pour terminer, faites tabulation jusqu’au bouton « Ok » et pressez la touche « Entrée ».

L’insertion est réalisée…

 

Remarque :

ü  Dans le premier traitement, nous avons concaténer « bonjour » et la valeur de la cellule A1. Une concaténation permet de coller bout à bout plusieurs chaîne de caractères. Comme dans notre formule A1 est une référence de cellule, vous ne devait pas l’encapsuler dans des guillemets, ce qui n’est pas le cas bien sûr pour le texte « bonjour »…

 


Les fonctions de vérification

 

Présentation

 

Ces fonctions permettent de vérifier l’état ou la nature de la valeur d’une cellule.

 

Par conséquent, vous devez intégrer ces fonctions et leurs arguments dans la partie « condition » du « SI », c’est-à-dire dans son premier argument…

 

La fonction ESTVIDE

 

Cette fonction affiche vrai si la valeur de la cellule passée en paramètre est vide.

Au contraire, si une valeur existe dans la cellule passée en paramètre, la fonction ESTVIDE affiche Faux.

 

Par exemple, pour que la cellule B15 affiche Vrai si la cellule A1 est vide, écrivez la formule suivante dans B15 :

=ESTVIDE(A1)

Mais dans un « SI », c’est encore mieux…

=si(estvide(A1);"Valeur manquante";"Bonjour cher élève !")

 

La fonction ESTTEXTE

 

Cette fonction affiche Vrai si la valeur de la cellule passée en paramètre est un texte, donc une chaîne de caractères, par contre, Si la valeur de la cellule est une valeur numérique, la fonction affiche Faux.

Par exemple, dans la cellule A1, écrivez une chaîne de caractères, ensuite, allez dans la cellule B3 est saisissez la formule suivante :

=ESTTEXTE(A1)

Vous pourrez alors constater que la fonction affiche Vrai.

 

Et dans un « SI » ?

Ok, voici pour vous !

=si(esttexte(A1);"Il s'agit d'un texte";"Il ne s'agit point d'un texte !")

 

La fonction ESTNONTEXTE

 

Cette fonction affiche Vrai si la valeur de la cellule passée en paramètre est un numérique, et faux s’il s’agit d’un texte.

 

Par exemple, voici une formule qui réalise la somme de A1 et A2, et ce, uniquement si ces 2 valeurs de cellules sont des numériques :

=SI(ET(ESTNONTEXTE(A1);ESTNONTEXTE(A2));SOMME(A1;A2);"Erreur, au moins l'une des valeurs de cellules n'est pas un numérique")

 

La fonction ESTNUM

 

Si la valeur de la cellule passée en paramètre est un numérique, ESTNUM affiche Vrai.

Au contraire, si la valeur de la cellule passée en paramètre est un texte, donc une chaîne de caractère, la fonction ESTNUM affiche Faux.

 

En reprenant l’exemple de la fonction précédente, maintenant nous pouvons écrire :

=SI(ET(ESTnum(A1);ESTnum(A2));SOMME(A1;A2);"Erreur, au moins l'une des valeurs de cellules n'est pas un numérique")

 


La fonction nb pour les statistiques

 

A la base, sachez que la fonction de statistiques NB employée seule permet uniquement de compter le nombre de cellules contenant une valeur numérique parmis une plage de cellules.

Par exemple, si vous désirez savoir combien de cellules contiennent une valeur numérique à l’intérieure de la plage de cellules A1:A50 :

=nb(A1:A50)

 

Mieux encore, pour enrichir vos opérations de statistiques, la fonction NB.si permet de calculer le nombre de valeurs présentes dans une plage de cellules.

A titre d’exemple, si vous avez un tableau de contacts et que vous avez prévu une colonne « Villes », vous pourrez créer une colonne statistique qui permettra d’afficher le nombre de contacts par ville.

 

La syntaxe :

=nb.si(PlageDeCellules;Condition)

 

La description :

PlageDeCellules correspond bien sûr au groupe de cellules concerné, il peut être du genre A2:A1000

(Vous devez donc utiliser le séparateur « deux points » afin de séparer les références des 2 cellules se trouvant aux extrémités de la plage de cellules)

 

Condition est une expression de comparaison, vous devez par exemple écrire le signe égal suivi de la chaîne de caractères pour laquelle vous souhaitez faire un comptage. La condition est placée entre guillemets.

 

A titre d’exemple, dans A1, saisissez le titre « Villes ».

De A2 jusqu’à A20, saisissez des villes en réalisant des doublons…

 

Ensuite, dans C1, pour connaître le nombre de PARIS contenu dans la colonne A, saisissez la formule suivante :

=nb.si(a2:a20;"=PARIS")

Dans C2, pour connaître le nombre de BORDEAUX contenu dans la colonne A, saisissez la formule suivante :

=nb.si(a2:a20;"=BORDEAUX")

 

Philippe BOULANGER