L'essentiel —
CHOISIR(no_index; valeur1; valeur2; …)renvoie l'élément situé à la positionno_indexdans la liste que vous lui donnez :CHOISIR(2; "A"; "B"; "C")vaut"B". Elle sélectionne par position, non en comparant une valeur — c'est précisément ce qui en fait la partenaire idéale de toute formule produisant déjà un nombre de 1 à N (commeJOURSEMouMOIS). Son pouvoir sous-exploité : les « valeurs » peuvent être des plages entières, pas seulement des cellules isolées.
=CHOISIR(2; "Gold"; "Silver"; "Bronze") ' -> "Silver"
=CHOISIR(JOURSEM(A2); "Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat")
=CHOISIR(MOIS(A2); "Q1";"Q1";"Q1";"Q2";"Q2";"Q2";"Q3";"Q3";"Q3";"Q4";"Q4";"Q4")
=SOMME(CHOISIR(scénario; Ventes_T1; Ventes_T2; Ventes_T3)) ' sélectionne une plage entière
CHOISIR est l'une des plus anciennes fonctions d'Excel, et l'une des plus discrètement utiles. La plupart des gens la découvrent comme un moyen de transformer un nombre en libellé, puis ne réalisent jamais qu'elle peut aussi restituer des plages entières — c'est là qu'elle accomplit, avec une netteté inégalée, ce qu'aucune autre fonction ne fait.
Remarque : dans l'interface d'Excel en français, cette fonction s'appelle CHOISIR (CHOOSE en anglais), et les codes d'erreur s'affichent #VALEUR! et #N/A. Les formules ci-dessous emploient les noms français avec le point-virgule
;comme séparateur d'arguments — le comportement est identique à la version anglaise.
Ce que vous allez apprendre
- Le modèle mental : sélectionner par position, non par recherche
- Pourquoi cela fait de CHOISIR la partenaire naturelle de
JOURSEM,MOISet de tout nombre de 1 à N - Le piège
#VALEUR!quand l'index sort des limites (et ce que fait un index décimal) - CHOISIR vs SI.MULTIPLE vs INDEX — choisir la bonne
- Le superpouvoir : renvoyer des plages pour basculer entre scénarios ou réordonner des colonnes
Le modèle mental : sélectionner par position, non par correspondance
Imaginez une étagère numérotée. CHOISIR prend un numéro de position et vous tend ce qui se trouve dans cet emplacement :
=CHOISIR(3; "Gold"; "Silver"; "Bronze"; "Steel")
' ▲ position 3 -> "Bronze"
L'index commence à 1 : 1 donne la première valeur, 2 la deuxième, et ainsi
de suite. C'est toute la différence entre CHOISIR et sa cousine
SI.MULTIPLE. SI.MULTIPLE demande « quel cas égale
ma valeur ? » CHOISIR demande « qu'y a-t-il dans l'emplacement numéro N ? » —
elle n'inspecte jamais le contenu, elle compte simplement jusqu'à la position.
CHOISIR brille donc précisément quand vous disposez déjà d'un nombre qui signifie
« le Nième ».
L'usage classique : transformer un nombre calculé en libellé
Parce que tant de fonctions Excel renvoient un entier de 1 à N, CHOISIR est la
façon soignée de traduire cet entier en quelque chose d'humain. JOURSEM renvoie
1 à 7, MOIS renvoie 1 à 12 — injectez l'un ou l'autre directement dans CHOISIR :
=CHOISIR(JOURSEM(A2); "Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat") ' nom du jour
=CHOISIR(MOIS(A2); "Jan";"Feb";"Mar";"Apr";"May";"Jun";
"Jul";"Aug";"Sep";"Oct";"Nov";"Dec") ' nom du mois
=CHOISIR(ARRONDI.SUP(MOIS(A2)/3;0); "Q1";"Q2";"Q3";"Q4") ' trimestre
L'association vit en ligne, dans l'ordre, sans table de recherche à entretenir. Quand la source est un entier séquentiel propre, cela l'emporte à la fois sur un SI imbriqué et sur une table auxiliaire.
Le piège : un index hors de la liste
CHOISIR a une règle dure et une règle souple.
Règle dure — hors limites égale erreur. Si no_index est inférieur à 1 ou
supérieur au nombre de valeurs que vous avez fournies, CHOISIR renvoie
#VALEUR! :
=CHOISIR(4; "A"; "B"; "C") ' -> #VALEUR! (seules 3 valeurs existent)
=CHOISIR(0; "A"; "B"; "C") ' -> #VALEUR! (l'index commence à 1, donc 0 est invalide)
Cela mord quand l'index provient de données susceptibles de déborder — une cellule vide se lit comme 0, un code inattendu se lit comme N+1. Protégez-le avec SIERREUR ou validez l'index au préalable.
Règle souple — les décimales sont tronquées. Un index fractionnaire est arrondi
vers le bas à l'entier le plus proche avant usage, si bien que CHOISIR(2,9; …)
se comporte comme CHOISIR(2; …). Bon à savoir, parfois surprenant.
Le superpouvoir : CHOISIR peut renvoyer des plages entières
Voici la partie que la plupart des tutoriels sautent. Les arguments valeur ne sont
pas obligés d'être des valeurs isolées — ce peuvent être des plages. Cela
transforme CHOISIR en aiguilleur pour des colonnes ou des tables entières, ce qui
débloque deux schémas réellement puissants.
Basculement de scénarios. Pointez une même formule vers des jeux de données différents selon une cellule de sélection :
=SOMME(CHOISIR(scénario; Ventes_T1; Ventes_T2; Ventes_T3))
=MOYENNE(CHOISIR($B$1; Region_Nord; Region_Sud; Region_Ouest))
Faites passer scénario de 1 à 2 et la SOMME se réoriente vers une plage
complètement différente — sans réécriture, sans SI enveloppant l'ensemble.
L'astuce de la recherche vers la gauche. Le vieux remède au fait que « RECHERCHEV ne sait pas regarder vers la gauche » consiste à construire une table virtuelle réordonnée avec CHOISIR et une constante matricielle :
=RECHERCHEV(F2; CHOISIR({1\2}; C2:C100; A2:A100); 2; FAUX)
' présente C (la clé) comme colonne 1 et A (la réponse) comme colonne 2
CHOISIR({1\2}; …) renvoie une matrice à deux colonnes dont les colonnes sont
permutées, si bien que RECHERCHEV peut chercher dans une colonne physiquement située
à droite de la réponse. C'est une astuce classique — et un bon moment pour un
jugement (ci-dessous).
CHOISIR vs SI.MULTIPLE vs INDEX
Elles se recoupent, mais chacune a son domaine :
- L'index est un entier propre de 1 à N que vous avez déjà ? CHOISIR — surtout
avec
JOURSEM/MOIS, ou pour basculer des plages entières. - Sélection par une valeur arbitraire (un code, un libellé, non séquentiel) ? SI.MULTIPLE — elle compare des valeurs, CHOISIR ne fait que compter des positions.
- Extraire le Nième élément d'une plage/liste existante ?
INDEX & EQUIV ou
INDEX(plage; n)— préférable quand les candidats vivent déjà dans des cellules plutôt que d'être saisis dans la formule.
Le jugement
CHOISIR donne le meilleur d'elle-même quand l'index est naturellement un petit
entier séquentiel et que les sorties sont courtes et stables — noms de jours, noms
de mois, libellés de trimestres, une poignée de plages de scénarios. Là, c'est la
chose la plus directe que vous puissiez écrire. Mais soyez discipliné sur ses
limites. Une longue liste de valeurs saisies à la main, c'est de la donnée qui se
fait passer pour une formule ; mettez-la dans une table et utilisez une recherche à
la place, pour que modifier un libellé ne signifie pas modifier une formule. Et
l'astuce de recherche vers la gauche CHOISIR({1\2}; …), aussi élégante soit-elle,
n'existe que pour contourner une limite de RECHERCHEV que
RECHERCHEX a entièrement supprimée — sous Microsoft 365,
tournez-vous vers RECHERCHEX et laissez tomber la gymnastique de réordonnancement.
La valeur durable et irremplaçable de CHOISIR, c'est la sélection par position,
surtout sur des plages entières. Utilisez-la pour cela et elle est imbattable ;
utilisez-la en remplacement d'une table de recherche et vous ne faites que rendre
une formule plus difficile à maintenir.
Comment ExcelMaster aide
La partie difficile de CHOISIR n'est pas la syntaxe — c'est de savoir quand c'est
le bon outil face à une recherche, et de protéger l'index pour qu'il ne sorte jamais
des limites. ExcelMaster tranche pour vous : il emploie CHOISIR pour associer
des entiers calculés comme JOURSEM et MOIS à des libellés, encadre l'index en
toute sécurité lorsqu'il provient de données vivantes, applique le schéma de
basculement de plages pour les modèles de scénarios, et vous oriente vers une vraie
recherche (ou RECHERCHEX) quand vos cas sont en réalité
une table. Décrivez ce que vous voulez — « affiche le nom du jour pour chaque date »
ou « bascule ce rapport entre les totaux du T1, du T2 et du T3 » — et il écrit la
version qui ne renverra pas #VALEUR! sur la ligne que vous n'attendiez pas.
Questions fréquentes
Comment fonctionne la fonction CHOISIR dans Excel ?
=CHOISIR(no_index; valeur1; valeur2; …) renvoie la valeur située à la position
no_index. L'index commence à 1, donc CHOISIR(1; …) renvoie la première valeur.
Elle sélectionne purement par position et n'inspecte jamais les valeurs elles-mêmes.
Quelle est la différence entre CHOISIR et SI.MULTIPLE ?
CHOISIR sélectionne par position — vous lui donnez un nombre N et elle renvoie la Nième valeur. SI.MULTIPLE sélectionne en comparant une valeur — vous lui donnez une expression et elle trouve le cas qui lui est égal. Utilisez CHOISIR quand vous avez déjà un index de 1 à N ; utilisez SI.MULTIPLE quand vous comparez un code ou un libellé.
Pourquoi CHOISIR renvoie-t-elle #VALEUR! ?
Parce que no_index est hors limites — inférieur à 1, ou supérieur au nombre de
valeurs que vous avez fournies. Une cellule vide (qui se lit comme 0) en est une
cause fréquente. Validez l'index ou enveloppez la formule dans
SIERREUR.
CHOISIR peut-elle renvoyer une plage entière plutôt qu'une valeur unique ?
Oui — les arguments de valeur peuvent être des plages. =SOMME(CHOISIR(sel; PlageA; PlageB; PlageC)) sélectionne une plage entière par position, et c'est ainsi que
CHOISIR alimente le basculement de scénarios et l'astuce classique de recherche vers
la gauche CHOISIR({1\2}; …) pour RECHERCHEV.
CHOISIR est-elle préférable à une table de recherche ?
Pour des listes courtes et stables pilotées par un entier séquentiel (noms de jours/mois/trimestres), CHOISIR est plus nette. Pour des listes longues ou souvent modifiées, une vraie table de recherche avec INDEX & EQUIV ou RECHERCHEX est plus maintenable, parce que vous modifiez des données au lieu de la formule.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 08/07/2026.
Guides associés : Excel SI.MULTIPLE · INDEX & EQUIV · Excel RECHERCHEV · Excel SIERREUR
