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 dansreference. Par défaut0.column[Facultatif] : La position de colonne dansreference. Par défaut0.
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)renvoieBen(3e ligne, 1re colonne).=INDEX(A1:C4, 4, 3)renvoie58000.=INDEX(C1:C4, 2)renvoie52000(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/AavecINDEX/MATCH.MATCHn'a rien trouvé. Vérifiez les espaces superflus (TRIM), les différences texte/nombre, et assurez-vous d'avoir passé0comme type de correspondance.- Résultats décalés d'une ligne.
MATCHetINDEXdoivent utiliser des plages qui commencent sur la même ligne. SiMATCHcherche dansA2:A100mais queINDEXrenvoie depuisC1: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.