Fonction INDEX Excel
La fonction INDEX est l'un des outils les plus puissants d'Excel pour aller chercher une valeur à une position précise dans un tableau. Seule, elle extrait la donnée qui se trouve à l'intersection d'une ligne et d'une colonne données. Combinée avec EQUIV, elle devient une alternative à RECHERCHEV capable de chercher dans n'importe quelle direction : à gauche, à droite, en remontant une colonne ou en croisant deux critères dans un tableau 2D.
En pratique, c'est la combinaison INDEX-EQUIV qui fait la différence dans les fichiers sérieux : retrouver le salaire d'un employé à partir de son email, récupérer les ventes d'un produit pour un mois précis dans un tableau croisé, ou contourner les limitations de RECHERCHEV quand la colonne de résultat est à gauche de la colonne de recherche.
Syntaxe de la fonction INDEX
La fonction INDEX retourne la valeur d'une cellule à l'intersection d'un numéro de ligne et d'un numéro de colonne dans une plage donnée. Si la plage ne contient qu'une colonne ou une ligne, l'un des deux numéros peut être omis.
=INDEX(matrice; no_ligne; [no_colonne])Si tu passes 0 comme no_ligne, INDEX retourne la colonne entière ; si tu passes 0 comme no_colonne, elle retourne la ligne entière. C'est utile dans les formules matricielles pour opérer sur toute une ligne ou colonne.
Comprendre chaque paramètre de la fonction INDEX
matrice
: la plage de cellules dans laquelle INDEX va chercherÇa peut être une plage comme A1:D10, un tableau nommé, ou même le résultat d'une autre fonction. Si ta plage ne contient qu'une seule ligne ou colonne, tu peux omettre le paramètre correspondant.
Tu peux aussi passer plusieurs plages entre parenthèses et utiliser un 4e argument pour choisir la zone : =INDEX((A1:B10; D1:E10); 3; 2; 2) retourne la valeur en ligne 3, colonne 2 de la 2e zone (D1:E10).
Astuce : Si ta matrice ne contient qu'une seule ligne ou colonne, tu peux omettre no_ligne ou no_colonne. Par exemple, =INDEX(A1:A10; 3) retourne la 3e valeur de la colonne A1:A10.
no_ligne
: le numéro de la ligne dans la matriceLa première ligne de ta plage est la ligne 1 (pas le numéro de ligne de la feuille). Si tu mets 0, INDEX retourne la colonne entière, ce qui est utile dans les formules matricielles.
Ce paramètre est souvent remplacé par une formule EQUIV qui calcule automatiquement la bonne position à partir d'une valeur recherchée.
[no_colonne]
: le numéro de la colonne dans la matrice(facultatif)La première colonne de ta plage est la colonne 1. Si tu l'omets pour une plage d'une seule colonne, INDEX prend la 1re colonne. Si tu mets 0, INDEX retourne la ligne entière.
Comme pour no_ligne, ce paramètre peut être remplacé par EQUIV pour créer une recherche bidimensionnelle : INDEX cherche à l'intersection de la ligne trouvée par EQUIV et de la colonne trouvée par un second EQUIV.
Pas envie d'écrire la formule INDEX à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Exemple 1 – Responsable commercial : extraire un tarif à position fixe
Tu es responsable commercial et ton tableau de tarifs s'organise avec les produits en lignes et les niveaux d'offre en colonnes. Pour extraire le tarif Pro de la Licence B (ligne 2, colonne 3), tu utilises INDEX avec les positions directement.
La formule =INDEX(A2:D4; 2; 3) va chercher à l'intersection de la 2e ligne et de la 3e colonne de la plage A2:D4, et retourne 299 €. Utile quand les positions sont fixes, mais la vraie puissance arrive avec EQUIV pour rendre la recherche dynamique.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Produit | Tarif Basic | Tarif Pro | Tarif Enterprise |
| 2 | Licence A | 99 € | 199 € | 499 € |
| 3 | Licence B | 149 € | 299 € | 699 € |
| 4 | Licence C | 199 € | 399 € | 899 € |
=INDEX(A2:D4; 2; 3)Exemple 2 – RH : retrouver le salaire d'un employé avec INDEX + EQUIV
Tu es responsable RH et tu veux retrouver automatiquement le salaire d'un employé à partir de son nom, sans avoir à compter manuellement la ligne où il se trouve. C'est la combinaison INDEX-EQUIV qui gère tout.
Dans la formule, EQUIV cherche la position de "Dupont" dans la colonne des noms et renvoie 2. INDEX utilise cette position pour aller chercher la 2e valeur dans la colonne des salaires : 52 000 €. Décomposition : EQUIV("Dupont"; A2:A4; 0) retourne 2, puis INDEX(C2:C4; 2) retourne 52 000 €.
| A | B | C | |
|---|---|---|---|
| 1 | Nom | Département | Salaire |
| 2 | Martin | Ventes | 45 000 € |
| 3 | Dupont | IT | 52 000 € |
| 4 | Bernard | RH | 48 000 € |
=INDEX(C2:C4; EQUIV("Dupont"; A2:A4; 0))Astuce de pro : Change le nom "Dupont" par une référence à une cellule (ex. F1) pour créer un moteur de recherche interactif : tape un nom en F1, le salaire s'affiche automatiquement.
Exemple 3 – IT / Sécurité : recherche inversée vers la gauche
Tu gères un annuaire d'entreprise et tu as reçu un email d'une adresse inconnue. Tu veux retrouver le code employé correspondant, mais la colonne Code est à gauche de la colonne Email. Avec RECHERCHEV, c'est impossible : il ne peut chercher que vers la droite.
Avec INDEX-EQUIV, la direction n'a aucune importance. EQUIV trouve que l'email est en position 2, et INDEX retourne le code de la ligne 2 dans la colonne A : EMP-042. Cette flexibilité est la principale raison de préférer INDEX-EQUIV à RECHERCHEV.
| A | B | C | |
|---|---|---|---|
| 1 | Code | Nom | |
| 2 | EMP-001 | Martin | martin@email.com |
| 3 | EMP-042 | Dupont | dupont@email.com |
| 4 | EMP-088 | Bernard | bernard@email.com |
=INDEX(A2:A4; EQUIV("dupont@email.com"; C2:C4; 0))Exemple 4 – Contrôleur de gestion : recherche bidimensionnelle dans un tableau croisé
Tu es contrôleur de gestion et tu as un tableau croisé avec des produits en lignes et des mois en colonnes. Tu veux récupérer les ventes du Produit B en Mars, quel que soit l'ordre des lignes ou des colonnes.
La formule utilise deux EQUIV : le premier trouve la ligne de Produit B (position 2), le second trouve la colonne Mars (position 3). INDEX retourne la valeur à cette intersection : 220. Mets le nom du produit et le mois dans des cellules séparées pour créer un tableau de bord interactif.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Janvier | Février | Mars | |
| 2 | Produit A | 100 | 120 | 95 |
| 3 | Produit B | 200 | 180 | 220 |
| 4 | Produit C | 150 | 160 | 175 |
=INDEX(B2:D4; EQUIV("Produit B"; A2:A4; 0); EQUIV("Mars"; B1:D1; 0))Les erreurs fréquentes avec la fonction INDEX
Erreur #REF! : le numéro de ligne ou de colonne dépasse la taille de la plage
Cette erreur apparaît quand no_ligne ou no_colonne est supérieur au nombre de lignes ou de colonnes dans ta matrice. Par exemple, demander la ligne 5 dans une plage de 4 lignes.
Solution : Vérifie que no_ligne est inférieur ou égal au nombre de lignes de ta plage, et que no_colonne est inférieur ou égal au nombre de colonnes. Ajuste la plage ou les numéros en conséquence.
Erreur #VALEUR! : le numéro de ligne ou de colonne n'est pas un entier valide
Le paramètre no_ligne ou no_colonne contient un texte, un décimal ou une valeur négative au lieu d'un nombre entier positif.
Solution : Assure-toi que no_ligne et no_colonne sont des nombres entiers positifs. Si tu utilises une formule pour calculer ces numéros, entoure-la de ENT() pour convertir en entier si nécessaire.
Erreur #N/A quand INDEX est combiné avec EQUIV : la valeur cherchée est introuvable
L'erreur vient d'EQUIV qui ne trouve pas la valeur dans la plage de recherche. Causes fréquentes : une faute de frappe, un espace en trop dans les données, ou un type incompatible (texte vs nombre).
Solution : Entoure ta formule de SIERREUR pour afficher un message personnalisé : =SIERREUR(INDEX(C:C; EQUIV(A1; B:B; 0)); "Non trouvé"). Vérifie aussi que ta valeur cherchée et les données de la plage sont du même type (texte ou nombre).
INDEX-EQUIV vs RECHERCHEV vs RECHERCHEX
RECHERCHEV est plus simple à écrire pour une recherche basique vers la droite. INDEX-EQUIV est plus flexible et robuste pour tout le reste. RECHERCHEX (Excel 365/2021) combine les avantages des deux mais n'est pas disponible dans toutes les versions.
| Critère | INDEX-EQUIV | RECHERCHEV | RECHERCHEX |
|---|---|---|---|
| Direction de recherche | Toutes directions | Droite uniquement | Toutes directions |
| Robustesse si colonne insérée | Aucun problème | Casse la formule | Aucun problème |
| Performance sur grands volumes | Meilleure | Moyenne | Bonne |
| Complexité | Moyenne (deux fonctions) | Simple | Simple |
| Disponibilité | Toutes versions | Toutes versions | Excel 365 et 2021+ |
| Recherche 2D (ligne et colonne) | Oui (avec deux EQUIV) | Non | Partielle |
Astuces avancées avec INDEX
Rendre la formule robuste aux insertions de colonnes
Quand tu utilises RECHERCHEV avec un numéro de colonne fixe (ex. 3), insérer une colonne dans ton tableau casse la formule sans prévenir. Avec INDEX-EQUIV, tu références la colonne par son adresse, pas par son numéro : ajouter une colonne ne change rien.
C'est la principale raison pour laquelle les analystes financiers préfèrent INDEX-EQUIV sur les grands fichiers partagés.
Recherche sur deux critères sans formule matricielle
Pour croiser deux colonnes (nom ET département), tu peux concaténer les deux critères dans une seule colonne auxiliaire et utiliser EQUIV dessus : =INDEX(C:C; EQUIV(F1&G1; A:A&B:B; 0)). Entre les deux plages dans EQUIV, utilise le raccourci Ctrl+Maj+Entrée (Excel) ou laisse la formule normale (Google Sheets).
Cette technique évite d'ajouter des colonnes helper dans ton tableau source.
Utiliser INDEX pour retourner une plage entière
En passant 0 comme no_ligne, =INDEX(A:C; 0; 2) retourne la colonne B entière, ce qui est utilisable par d'autres fonctions comme SOMME ou MAX. C'est puissant pour créer des agrégats dynamiques qui s'adaptent quand tu changes le numéro de colonne.
Cette syntaxe fonctionne aussi dans les formules matricielles pour des calculs conditionnels avancés.
Questions fréquentes sur la fonction INDEX
Quelle est la différence entre INDEX et RECHERCHEV ?
RECHERCHEV cherche une valeur et retourne une colonne à droite. INDEX retourne simplement la valeur à une position donnée (ligne, colonne). INDEX seul ne cherche pas : c'est pourquoi on le combine souvent avec EQUIV pour créer une alternative plus flexible à RECHERCHEV.
Pourquoi combiner INDEX avec EQUIV ?
EQUIV trouve la position d'une valeur dans une plage. En combinant avec INDEX, tu obtiens une recherche dynamique : EQUIV trouve la ligne, INDEX retourne la valeur. Cette combinaison peut chercher dans n'importe quelle direction, contrairement à RECHERCHEV qui ne cherche que vers la droite.
INDEX peut-elle retourner plusieurs valeurs ?
Oui. Si tu omets le numéro de ligne ou de colonne en passant 0, INDEX retourne une ligne ou colonne entière. C'est très utile dans les formules matricielles ou avec SOMME et MOYENNE pour calculer sur une ligne ou colonne spécifique.
Comment utiliser INDEX avec plusieurs zones ?
INDEX peut recevoir plusieurs plages entre parenthèses et un 4e argument pour choisir la zone. Exemple : =INDEX((A1:B10; D1:E10); 3; 2; 2) retourne la valeur en ligne 3, colonne 2 de la 2e zone (D1:E10). C'est utile pour des tableaux discontinus.
INDEX est-elle plus rapide que RECHERCHEV ?
Oui, INDEX-EQUIV est généralement plus performant que RECHERCHEV sur de gros volumes de données, surtout quand la colonne de résultat est loin de la colonne de recherche. La différence devient notable au-delà de 10 000 lignes.
Les fonctions similaires à INDEX
Deviens un pro d'Excel
Rejoins Le Dojo Club pour maîtriser toutes les fonctions Excel, avec des lives hebdomadaires et une communauté qui t'aide.
Essayer pendant 30 jours