Fonction INDEX dans Excel

Fonction INDEX dans Excel
Dernière mise à jour le 05/02/2024
Temps de lecture : 4 minutes

La fonction INDEX permet de retourner une valeur en se basant sur la position dans une ligne et une colonne

  1. Sélectionner un tableau de recherche

    Celà peut-être une seule colonne ou un tableau de plusieurs lignes et plusieurs colonnes

  2. La position de la ligne à retourner

    Ici, il faut indiquer une valeur numérique

  3. 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

  1. RECHERCHEV
  2. INDEX
  3. 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)
INDEX retourne une position

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.

  1. Nous commençons par mettre les références de notre tableau en premier paramètre.
  2. Nous laissons le second paramètre vide (pas de recherche en ligne à faire ici)
  3. Nous indiquons la référence de la cellule qui contient le chiffre

=INDEX(C3:I3;;C4)

Utilisation de la fonction INDEX pour récupérer la valeur correspondant à sa position dans une liste horizontale

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)

La fonction INDEX retourne la valeur correspondante à une position dans une liste verticale

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)

Recherche en ligne et en colonne

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))

Utilisation de la fonction INDEX dans un tableaux à 2 dimensions

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

Récupérer les valeurs depuis plusieurs plages de cellules

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.

Somme dynamique avec les fonction INDEX et MATCH

Vidéo explicative

7 Comments

  1. NKAMSU NJIPAH
    17/05/2023 @ 15:23

    Merci pour vos précisions

    Reply

  2. Rémi MEROUZE
    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

    Reply

    • Frédéric LE GUEN
      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"

      Reply

  3. Mexav
    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

    Reply

  4. Pierre
    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

    Reply

    • Frédéric LE GUEN
      26/06/2018 @ 07:35

      Merci bcp

      Reply

  5. Anonyme
    11/03/2016 @ 11:53

    yes indeed

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Fonction INDEX dans Excel

Reading time: 4 minutes
Dernière mise à jour le 05/02/2024

La fonction INDEX permet de retourner une valeur en se basant sur la position dans une ligne et une colonne

  1. Sélectionner un tableau de recherche

    Celà peut-être une seule colonne ou un tableau de plusieurs lignes et plusieurs colonnes

  2. La position de la ligne à retourner

    Ici, il faut indiquer une valeur numérique

  3. 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

  1. RECHERCHEV
  2. INDEX
  3. 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)
INDEX retourne une position

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.

  1. Nous commençons par mettre les références de notre tableau en premier paramètre.
  2. Nous laissons le second paramètre vide (pas de recherche en ligne à faire ici)
  3. Nous indiquons la référence de la cellule qui contient le chiffre

=INDEX(C3:I3;;C4)

Utilisation de la fonction INDEX pour récupérer la valeur correspondant à sa position dans une liste horizontale

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)

La fonction INDEX retourne la valeur correspondante à une position dans une liste verticale

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)

Recherche en ligne et en colonne

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))

Utilisation de la fonction INDEX dans un tableaux à 2 dimensions

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

Récupérer les valeurs depuis plusieurs plages de cellules

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.

Somme dynamique avec les fonction INDEX et MATCH

Vidéo explicative

7 Comments

  1. NKAMSU NJIPAH
    17/05/2023 @ 15:23

    Merci pour vos précisions

    Reply

  2. Rémi MEROUZE
    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

    Reply

    • Frédéric LE GUEN
      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"

      Reply

  3. Mexav
    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

    Reply

  4. Pierre
    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

    Reply

    • Frédéric LE GUEN
      26/06/2018 @ 07:35

      Merci bcp

      Reply

  5. Anonyme
    11/03/2016 @ 11:53

    yes indeed

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.