La fonction INDEX permet de retourner une valeur en se basant sur la position dans une ligne et une colonne
- Sélectionner un tableau de recherche
Celà peut-être une seule colonne ou un tableau de plusieurs lignes et plusieurs colonnes
- La position de la ligne à retourner
Ici, il faut indiquer une valeur numérique
- La position de la colonne à retourner
Là encore, la position mais au niveau des colonnes
=INDEX(Tableau de recherche;Ligne à retourner;Colonne à retourner)
INDEX ou RECHERCHEV
Dans Excel, il y a plusieurs fonctions qui permettent de récupérer une valeur dans un tableau. Il y a
- RECHERCHEV
- INDEX
- Et avec Microsoft 365, la nouvelle fonction RECHERCHEX
Les fonctions RECHERCHEV et INDEX se distinguent par leur méthode de recherche.
- RECHERCHEV se base sur la recherche d'une valeur
- INDEX effectue la recherche en se basant sur UNE POSITION (comme 3e ligne ou 2e colonne)

Retourner selon la position dans une liste
Dans l'exemple ci-dessous, nous avons les jours de la semaine dans un tableau
Orientation du tableau en ligne
En C4, nous allons indiquer la valeur de la position à renvoyer.
- Nous commençons par mettre les références de notre tableau en premier paramètre.
- Nous laissons le second paramètre vide (pas de recherche en ligne à faire ici)
- Nous indiquons la référence de la cellule qui contient le chiffre
=INDEX(C3:I3;;C4)

Si nous indiquons une valeur qui dépasse la taille du tableau (comme ici 8), la fonction retourne une erreur #N/A.
Orientation du tableau en colonne
Si les données du tableau sont orientées en colonne, nous devons inverser le deuxième et troisième paramètre.
=INDEX(A2:A13;C5)

Tableau à 2 dimensions
Prenons l'exemple de la grille de salaire suivante. Nous voulons récupérer le niveau de salaire en utilisant les cellules B3 et B4.
Nous allons donc utiliser la fonction INDEX pour indiquer que nous allons récupérer la valeur à l'intersection de la quatrième ligne et de la deuxième colonne.
- Nous commençons par indiquer les références de notre table de références
- Ensuite nous indiquons que nous souhaitons récupérer les informations de la 4e ligne (B3)
- Et ensuite de la 2e colonne (B4)
=INDEX(B7:G12;B3;B4)

Remarque très importante : pour que votre fonction retourne la bonne valeur, il est indispensable que votre plage de données ne prenne pas en compte les entêtes de ligne et de colonne.
Rendre la fonction dynamique
Mais l'idéal serait d'utiliser les valeurs contenues en en-têtes de ligne ou de colonne pour extraire un résultat.
Dans notre exemple, pour les lignes, ce n'est pas très difficile. Il suffit de rajouter 1 au nombre d'années d'étude, pour se positionner dans notre table de référence.
=INDEX(B7:G12;B3+1
Par contre, pour les colonnes, cela ne fonctionne pas car les valeurs ne sont pas linéaires (nous passons de 2, puis à 5, puis à 10, ...).
Nous allons devoir nous aider de la fonction EQUIV qui va nous retourner le nième élément d'une liste. Il est vraiment important de comprendre la fonction EQUIV la suite des explications.
=EQUIV(B4;B6:G6;0)
Changez soit le nombre d'années d'étude ou d'expérience dans le classeur intégré ci-dessous pour voir le résultat changer immédiatement dans le classeur
=INDEX(B7:G12;B3+1;EQUIV(B4;B6:G6;0))

Multi-tableaux
Les explications ci-dessous sont justes mais sont très peu utilisées (à lire, juste pour info)
La fonction INDEX permet également de faire des recherches dans plusieurs tableaux dans la même fonction. C'est uniquement dans ce cas que le 4e paramètre de la fonction doit être renseigné.
Le quatrième paramètre de la fonction va nous permettre d'indiquer dans quel tableau nous allons récupérer une valeur.
Ici, nous avons 3 tableaux qui ne sont pas de même taille et nous souhaitons récupérer l'information en ligne 2 et colonne 4 de l'un de ces tableaux dont le paramètre est écrit en H8.
Comme nous avons plusieurs tableaux, nous devons écrire leurs références entre parenthèses dans le premier paramètre. Nous écrivons alors la formule suivante :
=INDEX((A2:D5;F4:I5;B9:E11);2;4;H8)
Changez la valeur du tableau pour retourner une donnée depuis un nouveau tableau

Renvoi d'une référence
La fonction INDEX renvoie une valeur comme nous l'avons vu dans les exemples précédents mais elle renvoie également la référence d'une cellule
Ce n'est pas simple à comprendre surtout que vous ne verrez jamais la fonction INDEX renvoyer A1, C4, D8, B2, ....
Par contre, nous pouvons illustrer cette fonctionnalité en intégrant la fonction INDEX dans une fonction SOMME et ainsi créer une somme dynamique.

17/05/2023 @ 15:23
Merci pour vos précisions
08/11/2020 @ 14:41
Bonjour Monsieur LE GUEN,
Tout d'abord merci pour votre tutoriel très instructif, cependant j'ai une petite question pour tenter "d'améliorer" la formule dans la section "Rendre la fonction dynamique" :
- Nous avons les années d'expériences : 0, 1, 2, 5, 10 et 15.
- Si l'on rentre une autre valeur (3, 4, 6, etc...) la cellule renvoie #N/A
- Sans modifier la structure du tableau, est-il possible dans la formule (ou peut-être la solution est-elle dans la cellule même (liste déroulante par exemple)) de mettre la valeur au palier précédent (ou suivant selon le choix) :
Par exemple si la valeur est 3 alors la fonction renvoie la valeur pour 2 ou 5 ans d'expérience.
Merci d'avance pour le temps que vous prendrez,
Bien à vous
08/11/2020 @ 17:20
Oui, il suffit de remplacer le 3e paramètre de la EQUIV par 1
0 retourne la position exacte, 1 retourne la position "à partir de"
27/10/2018 @ 09:33
Merci pour la clarté du sujet, comme dit déjà, ni trop lent, ni trop vite.
J'utilise la formule INDEX, dans un classeur reprenant diverses informations d'individus, comme "nom, prénom, adresses, date de naissance etc, il y en a 20 dans la base de données.
Votre tuto va me permettre d'y apporter confirmation, modification et précision.
Bien cordialement
26/06/2018 @ 07:33
Ce n'est pas du tout ce que je cherchais, mais c'est très instructif.
Bien expliqué, pas trop lent, ni trop rapide et bonne élocution (pour la vidéo, je n'ai pas lu le tuto).
Merci
26/06/2018 @ 07:35
Merci bcp
11/03/2016 @ 11:53
yes indeed