Retour aux fonctions

INDEX

Renvoie le contenu d'une cellule, spécifiée par un décalage de ligne et de colonne.

LookupINDEX(reference, [row], [column])

INDEX renvoie le contenu d'une cellule à l'intérieur d'une plage, à partir d'une position de ligne et de colonne. Seule, c'est une fonction simple du type « donne-moi le 3e élément ». Associée à MATCH (EQUIV en version française), elle devient la recherche la plus flexible de Google Sheets : elle peut chercher dans toutes les directions et ne casse pas quand on insère des colonnes.

Syntaxe

=INDEX(reference, [row], [column])
  • reference : La plage dans laquelle choisir.
  • row [Facultatif] : La position de ligne dans reference. Par défaut 0.
  • column [Facultatif] : La position de colonne dans reference. Par défaut 0.

Les positions se comptent à l'intérieur de la plage, à partir de 1, et non d'après les numéros de lignes ou de colonnes de la feuille. Dans INDEX(C5:E10, 2, 1), la ligne 2 désigne la deuxième ligne de la plage (la ligne 6 de la feuille).

Si row ou column vaut 0 ou est omis, INDEX renvoie la ligne ou la colonne entière, ce qui est utile à l'intérieur d'autres fonctions.

Exemples de base

Avec ces données en A1:C4 :

   A        B         C
1  Nom      Service   Salaire
2  Ana      Ventes    52000
3  Ben      IT        61000
4  Chloé    Ventes    58000
  • =INDEX(A1:C4, 3, 1) renvoie Ben (3e ligne, 1re colonne).
  • =INDEX(A1:C4, 4, 3) renvoie 58000.
  • =INDEX(C1:C4, 2) renvoie 52000 (une seule colonne, donc seule la ligne est nécessaire).
  • =INDEX(A1:C4, 2, 0) renvoie toute la 2e ligne : Ana, Ventes, 52000.
  • =INDEX(A1:C4, 0, 3) renvoie toute la 3e colonne, que vous pouvez passer à SUM, MAX, etc.

INDEX + MATCH : la recherche flexible

MATCH trouve la position d'une valeur dans une liste, et INDEX renvoie la valeur située à une position dans une autre liste. Ensemble, elles remplacent VLOOKUP :

=INDEX(C2:C100, MATCH("Ben", A2:A100, 0))

Pas à pas : MATCH("Ben", A2:A100, 0) renvoie 2, la position de Ben dans la colonne des noms. INDEX(C2:C100, 2) renvoie le 2e élément de la colonne des salaires, soit 61000. Le 0 de MATCH signifie correspondance exacte.

Pourquoi on la préfère à VLOOKUP :

  • Elle peut chercher à gauche. La colonne de recherche et la colonne de résultat sont indépendantes : la clé n'a pas besoin d'être la première colonne.
  • Elle résiste à l'insertion de colonnes. On référence directement la colonne de résultat au lieu de la compter.
  • Elle est exacte quand on passe 0. Aucune correspondance approximative silencieuse.

Recherche à double entrée

Utilisez deux appels à MATCH pour trouver la valeur à l'intersection d'un libellé de ligne et d'un libellé de colonne :

=INDEX(B2:M20, MATCH("Nord", A2:A20, 0), MATCH("Mars", B1:M1, 0))

MATCH("Nord", A2:A20, 0) donne la ligne, MATCH("Mars", B1:M1, 0) donne la colonne, et INDEX renvoie la cellule où elles se croisent. C'est la méthode standard pour lire une valeur dans un rapport qui a des libellés sur les deux axes.

Autres formules utiles

Dernière valeur d'une colonne

=INDEX(A:A, COUNTA(A:A))

COUNTA compte les cellules remplies et INDEX renvoie l'élément à cette position. Cela fonctionne quand la colonne n'a pas de trous.

Une valeur sur n

=INDEX(A2:A100, SEQUENCE(10, 1, 1, 3))

Renvoie les 1er, 4e, 7e... éléments, car SEQUENCE produit les positions 1, 4, 7, ... et INDEX accepte un tableau de positions.

Choisir dans une liste par un numéro

=INDEX({"Faible", "Moyen", "Élevé"}, B2)

Transforme une note de 1, 2 ou 3 en libellé, sans longue imbrication de IF.

Recherche sensible à la casse

MATCH ignore la casse. Combinez INDEX avec MATCH et EXACT pour la respecter :

=INDEX(B2:B100, MATCH(TRUE, ARRAYFORMULA(EXACT(A2:A100, E2)), 0))

Erreurs courantes

  • #REF!. La ligne ou la colonne est en dehors de la plage. INDEX(A1:C4, 5, 1) échoue car la plage n'a que 4 lignes.
  • #N/A avec INDEX/MATCH. MATCH n'a rien trouvé. Vérifiez les espaces superflus (TRIM), les différences texte/nombre, et assurez-vous d'avoir passé 0 comme type de correspondance.
  • Résultats décalés d'une ligne. MATCH et INDEX doivent utiliser des plages qui commencent sur la même ligne. Si MATCH cherche dans A2:A100 mais que INDEX renvoie depuis C1:C100, tous les résultats sont décalés d'un cran.

INDEX, VLOOKUP ou XLOOKUP ?

INDEX/MATCH et XLOOKUP couvrent le même terrain. XLOOKUP est plus courte et propose une valeur « introuvable » intégrée. INDEX/MATCH fonctionne dans tous les tableurs et sert quand on a besoin de la position elle-même ou qu'on utilise INDEX pour autre chose qu'une recherche. VLOOKUP est la plus simple mais la moins flexible. Retrouvez la comparaison complète dans Utiliser INDEX-MATCH plutôt que VLOOKUP.

Fonctions associées

  • MATCH : Trouve la position d'une valeur dans une plage, la partenaire habituelle d'INDEX.
  • VLOOKUP : Recherche verticale par numéro de colonne.
  • HLOOKUP : Recherche horizontale par numéro de ligne.
  • XLOOKUP : Une recherche moderne en une seule fonction.
  • INDIRECT : Renvoie une référence de cellule indiquée sous forme de texte.

Articles associés

Newsletter

Plus d'exemples sur INDEX arrivent bientôt.

Nous préparons des mises à jour courtes et pratiques pour les utilisateurs avancés de Sheets.