SWITCH (SI.MULTIPLE dans un Google Sheets en français) compare une expression à une liste de valeurs possibles et renvoie le résultat associé à la première correspondance exacte, avec une valeur par défaut facultative. C'est la façon la plus propre de traduire des codes en libellés, comme des codes pays en noms ou des numéros de statut en mots.
Syntaxe
=SWITCH(expression, case1, value1, [case2, value2, ...], [default])
expression: La valeur ou la formule à tester.case1: La première valeur à comparer àexpression.value1: Le résultat quandexpressionest égale àcase1.case2, value2, ...[Facultatif] : D'autres paires cas/résultat, vérifiées dans l'ordre.default[Facultatif] : Un dernier argument sans cas devant lui, renvoyé quand rien ne correspond. Il doit être le dernier argument.
SWITCH ne vérifie que l'égalité exacte. Elle ne peut pas tester des plages ni des comparaisons comme > 10 ; utilisez IFS pour cela.
Exemple de base
Transformer un code de statut en A2 en texte :
=SWITCH(A2, 1, "Ouvert", 2, "En cours", 3, "Fermé", "Inconnu")
Si A2 vaut 2, le résultat est En cours. S'il vaut 7, le résultat est Inconnu, la valeur par défaut.
Sans valeur par défaut, une absence de correspondance renvoie #N/A :
=SWITCH(A2, 1, "Ouvert", 2, "En cours", 3, "Fermé")
Cas de texte
=SWITCH(B2, "US", "États-Unis", "UK", "Royaume-Uni", "FR", "France", "Autre")
La comparaison ne tient pas compte de la casse pour le texte : "us" correspond à "US".
La formule SWITCH(TRUE, ...)
Vous pouvez obtenir des tests de type plage en faisant porter SWITCH sur TRUE et en utilisant des conditions comme cas. La première condition qui s'évalue à TRUE l'emporte :
=SWITCH(TRUE, A1 >= 90, "A", A1 >= 80, "B", A1 >= 70, "C", "F")
Cela fonctionne comme IFS. C'est utile quand on veut garder une structure SWITCH et une valeur par défaut sans avoir besoin de TRUE, "défaut" à la fin.
Formules pratiques
Convertir des numéros de jour en noms
=SWITCH(WEEKDAY(A2), 1, "Dimanche", 2, "Lundi", 3, "Mardi", 4, "Mercredi", 5, "Jeudi", 6, "Vendredi", 7, "Samedi")
(Pour celle-ci, TEXT(A2, "dddd") est plus courte.)
Calculer des valeurs différentes selon le cas
Les résultats peuvent être des calculs :
=SWITCH(C2, "Or", B2 * 0.8, "Argent", B2 * 0.9, B2)
Les clients Or paient 80 %, les clients Argent 90 %, tous les autres le plein tarif.
Remplir une colonne
=ARRAYFORMULA(SWITCH(A2:A, 1, "Ouvert", 2, "En cours", 3, "Fermé", ""))
Comparer à des valeurs de cellules
Les cas peuvent aussi être des références de cellules :
=SWITCH(A2, E1, F1, E2, F2, E3, F3, "Aucun")
Pour des listes plus longues, placez plutôt la correspondance dans un tableau et utilisez XLOOKUP.
Erreurs courantes
#N/A: « Aucun cas ne correspond et aucune valeur par défaut n'est fournie ». Ajoutez une valeur par défaut finale.- Mauvais nombre d'arguments. Après l'expression, les arguments vont par paires cas/valeur, plus une unique valeur par défaut facultative à la fin. Un nombre pair d'arguments après l'expression signifie qu'il n'y a pas de valeur par défaut. Un nombre impair signifie que le dernier est la valeur par défaut.
- Nombre contre texte.
SWITCH(A2, 1, ...)ne correspondra pas au texte"1". Vérifiez que les types concordent. - Tentative d'utiliser
>ou<.SWITCH(A1, >10, ...)est invalide. UtilisezSWITCH(TRUE, A1 > 10, ...)ouIFS.
SWITCH, IFS, IF imbriqués ou tableau de correspondance ?
SWITCH: une valeur comparée à plusieurs options exactes. La plus lisible pour associer des codes à des libellés.IFS: des conditions différentes, y compris plages et comparaisons.IF: un seul test, avec desIFimbriqués pour quelques cas de plus.- Tableau de correspondance (
XLOOKUPouVLOOKUP) : préférable quand il y a beaucoup de cas ou qu'ils changent souvent, car on modifie un tableau et non une formule.
Questions fréquentes
SWITCH tient-elle compte de la casse ? Non, pour les comparaisons de texte.
SWITCH peut-elle associer plusieurs valeurs à un même résultat ? Pas directement. Répétez le résultat pour chaque cas, ou utilisez IFS avec OR.
Y a-t-il une limite au nombre de cas ? Pas de limite pratique, mais un tableau de correspondance est préférable au-delà d'une dizaine.
Fonctions associées
IFS: Teste plusieurs conditions dans l'ordre.IF: Un test, deux issues.XLOOKUP: Cherche des valeurs dans un tableau de correspondance.VLOOKUP: Recherche verticale dans un tableau.CHOOSE: Choisit une valeur dans une liste d'après son numéro d'index.