Excel pour journalistes (9) : les fonctions SI et apparentées

Sans grande surprise, la fonction SI renvoie une valeur selon qu’une condition est – ou n’est pas – remplie.  Elle peut être dopée grâce aux fonctions ET et OU. Voire survitaminée comme un athlète russe quand on la remplace par RechercheV.

Sa syntaxe est la suivante : =SI(test_logique;[valeur_si_vrai];[valeur_si_faux])
Autrement dit, on peut par exemple demander au tableur de nous renvoyer la valeur 1 si la réponse au test logique est vérifiée (par exemple, A1>12) et dans le cas contraire, de nous renvoyer la valeur 2.
Démonstration avec un tableau reprenant, pour des communes fictives, des revenus moyens par habitant, des espérances de vie et des taux de chômage. Tout aussi fictifs.
Feuilles et nombres aléatoires peuvent être téléchargés ici. Dans les versions anglaises du tableur (que ce soit Excel ou Open Office) ainsi que dans GSpreadsheet, la fonction SI est traduite par IF.

SI1

On le voit sur la capture d’écran ci-dessus (et sur la feuille téléchargeable), les moyennes ont été calculées pour chacune des trois colonnes. La colonne E contient les résultats de la condition : le chiffre 1 lorsque le revenu d’une commune est inférieur à la moyenne, le chiffre 2 lorsque ce revenu est supérieur à la même moyenne. Et donc en E2 : =SI(B2>$B$16;2;1)

Et sous Excel (je ne pense pas que cette coquetterie soit disponible sous OpenOffice ni sous GSpreadsheet) après une rapide mise en forme conditionnelle :

si2

 

On peut aussi imbriquer les fonctions SI pour multiplier les tests logiques : dans ce cas, renvoyer la valeur 3 si le revenu est supérieur à la moyenne, la valeur 2 si le revenu est égal à la moyenne, la valeur 1 si le revenu est inférieur à cette même moyenne. Ou pour l’écrire dans un langage que comprend le tableur : =SI(B2>$B$16;3;SI(B2=$B$16;2;SI(B2<$B$16;1)))

Mais attention, bien que le maximum théorique d’imbrications soit de 64, de longues instructions sont difficiles à gérer et peuvent être génératrices d’erreurs. C’est pourquoi dans certains cas, on recourra plutôt à la fonction RechercheV, déjà décrite dans ce blog.

Quand ET/OU viennent en renfort

Ces deux fonctions facilitent l’écriture de la fonction SI : en y ajoutant ET, le résultat dépend du respect de plusieurs tests logiques alors qu’avec OU, le résultat dépend du respect de l’un ou l’autre test logique.

Reprenons la même feuille de calcul et demandons à ce que la mention « bien » s’affiche dans la colonne F lorsque le revenu moyen ET l’espérance de vie ET le taux de chômage de chaque commune sont supérieurs aux trois moyennes. Et dans le cas contraire, que s’affiche la mention « pas bien ». Soit, en langage Excel : =SI(ET(B2>$B$16;C2>$C$16;D2>$D$16); »bien »; »pas bien »)

si4

Dans la version anglaise d’un tableur et dans GSpreadsheet, ce sera donc la formule traduite : =IF(AND(B3>$B$16;C3>$C$16;D3>$D$16);« bien »;« pas bien »)

En troquant la fonction ET contre le OU, on pourra gratifier d’une mention « bien » chaque commune dont un des chiffres au moins est supérieur à la moyenne : =SI(OU(B2>$B$16;C2>$C$16;D2>$D$16); »bien »; »pas bien »)

si5

SI.CONDITIONS

Enfin, une autre manière de simplifier l’imbrication de SI est, dans Excel 2016 uniquement, de recourir à SI.CONDITIONS.  Ainsi, au lieu de =SI(B2>$B$16;3;SI(B2=$B$16;2;SI(B2<$B$16;1)))

on pourra écrire SI.CONDITIONS(B2>$B$16;3;B2=$B$16;2;B2<$B$16;1)