Fonctions conditionnelles et logiques
Définition
Les fonctions conditionnelles exécutent un calcul selon une ou plusieurs conditions : SI renvoie une valeur selon un test, SOMME.SI additionne une plage selon un critère. Les fonctions logiques ET, OU et NON combinent des tests. Ces fonctions sont centrales dans les examens MO-210 et MO-211, en particulier SOMME.SI.ENS et NB.SI.ENS.
Les fonctions logiques
| Fonction | Syntaxe | Description |
|---|---|---|
| SI (IF) | =SI(test;valeur_si_vrai;valeur_si_faux) | Renvoie une valeur selon qu'un test est vrai ou faux |
| ET (AND) | =ET(test1;test2) | Renvoie VRAI si tous les tests sont vrais |
| OU (OR) | =OU(test1;test2) | Renvoie VRAI si au moins un test est vrai |
| NON (NOT) | =NON(test) | Inverse le résultat d'un test |
| SI.CONDITIONS (IFS) | =SI.CONDITIONS(test1;v1;test2;v2;...) | Évalue plusieurs tests dans l'ordre |
| SI.MULTIPLE (SWITCH) | =SI.MULTIPLE(valeur;v1;r1;v2;r2;...) | Compare une valeur à plusieurs cas |
| LET | =LET(nom;valeur;calcul) | Nomme des valeurs intermédiaires dans une formule |
Le test d'une fonction SI se rédige avec les opérateurs >, <, >=, <=, = et <>. Le texte des critères se met entre guillemets : =SI(A1>10;"Oui";"Non").
SI, SI.CONDITIONS et SI.MULTIPLE
SI s'imbrique quand il y a plus de deux résultats possibles, mais les imbrications deviennent vite illisibles. SI.CONDITIONS les remplace : les paires test/valeur s'évaluent dans l'ordre, et la première condition vraie gagne. Si aucune condition n'est vraie, la fonction renvoie #N/A, sauf si un dernier test VRAI fournit le cas par défaut.
=SI.CONDITIONS(A1>=16;"Admis";A1>=10;"Rattrapage";VRAI;"Refusé")
SI.MULTIPLE convient quand on compare une même valeur à plusieurs cas exacts, comme un code produit. LET nomme des calculs intermédiaires pour alléger les formules longues : =LET(taux;0,2;prix;SOMME(B2:B10);prix*(1+taux)).

Les fonctions conditionnelles d'agrégation
| Fonction | Syntaxe | Description |
|---|---|---|
| SOMME.SI (SUMIF) | =SOMME.SI(plage_critere;critere;plage_somme) | Additionne selon un critère |
| MOYENNE.SI (AVERAGEIF) | =MOYENNE.SI(plage_critere;critere;plage_moyenne) | Calcule une moyenne selon un critère |
| NB.SI (COUNTIF) | =NB.SI(plage;critere) | Compte selon un critère |
| SOMME.SI.ENS (SUMIFS) | =SOMME.SI.ENS(plage_somme;plage_c1;c1;plage_c2;c2) | Additionne selon plusieurs critères |
| MOYENNE.SI.ENS (AVERAGEIFS) | =MOYENNE.SI.ENS(plage_moyenne;plage_c1;c1;...) | Moyenne selon plusieurs critères |
| NB.SI.ENS (COUNTIFS) | =NB.SI.ENS(plage1;critere1;plage2;critere2) | Compte selon plusieurs critères |
| MAX.SI.ENS (MAXIFS) | =MAX.SI.ENS(plage_max;plage_c1;c1) | Maximum selon des critères |
| MIN.SI.ENS (MINIFS) | =MIN.SI.ENS(plage_min;plage_c1;c1) | Minimum selon des critères |
Dans les variantes .ENS, la plage à agréger vient en premier, contrairement aux variantes simples. Toutes les plages de critères doivent avoir la même taille que la plage à agréger, sinon la formule renvoie #VALEUR!. Les critères acceptent les opérateurs entre guillemets, ">100", et les jokers * et ? : "Nord*" correspond à toute valeur commençant par Nord.
Exemple concret
Un tableau des ventes contient Région en A2:A4, Vendeur en B2:B4 et Montant en C2:C4.
| Région | Vendeur | Montant |
|---|---|---|
| Nord | Dupont | 1200 |
| Sud | Martin | 800 |
| Nord | Martin | 950 |
=SOMME.SI.ENS(C2:C4;A2:A4;"Nord";B2:B4;"Martin") renvoie 950
=NB.SI(A2:A4;"Nord") renvoie 2
=MAX.SI.ENS(C2:C4;A2:A4;"Nord") renvoie 1200