=INDEX(C2:C6;EQUIV(F2;A2:A6;0)) trouve la ligne où F2 apparaît dans A2:A6 et renvoie la valeur de la même ligne de C2:C6. EQUIV trouve la position, INDEX va chercher la valeur à cette position. La formule fonctionne dans toutes les versions d'Excel, et elle peut chercher vers la gauche. EQUIV s'appelle MATCH dans un Excel anglais (INDEX garde le même nom), et le tableau affiche la formule ainsi : =INDEX(C2:C6,MATCH(F2,A2:A6,0)). Vous pouvez aussi y taper les formules en français, avec des points-virgules.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | P-101 | Pear | $1.50 | |
| 3 | Pear | Fruit | $1.50 | P-102 | |||
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
=INDEX(C2:C6;EQUIV(F2;A2:A6;0))Remplacez F2 par Milk et G2 renvoie $1.10. Remplacez C2:C6 par B2:B6 et elle renvoie la catégorie à la place.
Comment INDEX et EQUIV s'associent
La formule réunit deux étapes dans une cellule. Les voici dans des cellules séparées, pour voir ce que renvoie chaque partie.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Look for | Bread | |
| 2 | Apple | Fruit | $1.20 | P-101 | Position | 4 | |
| 3 | Pear | Fruit | $1.50 | P-102 | Price | $2.40 | |
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
=INDEX(C2:C6;G2)EQUIV(G1;A2:A6;0) renvoie 4, car Bread est le quatrième élément de A2:A6. INDEX(C2:C6;4) renvoie le quatrième élément de C2:C6, $2.40. Placez EQUIV dans INDEX à la place de G2 et vous obtenez la formule en une cellule. Deux règles la font fonctionner :
- Les deux plages doivent commencer à la même ligne et avoir la même hauteur.
EQUIV(...;A2:A6;0)compte à partir de la ligne 2, donc INDEX doit lireC2:C6, pasC1:C6(qui renverrait la ligne du dessus). - Terminez EQUIV par 0. Sans lui, EQUIV fait une correspondance approximative qui suppose la colonne A triée, et sur une liste de noms elle peut renvoyer la position d'une mauvaise ligne. La page EQUIV présente ses trois types de correspondance.
Si la valeur n'est pas dans la liste, EQUIV renvoie #N/A, et la formule entière aussi. =SI.NON.DISP(INDEX(C2:C6;EQUIV(F2;A2:A6;0));"Not found") affiche un texte à la place.
Recherche vers la gauche
RECHERCHEV (VLOOKUP en anglais) renvoie les colonnes situées à droite de celle où elle cherche. INDEX et EQUIV ne se soucient pas de l'ordre : on cherche dans la colonne D, on renvoie la colonne A.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Code | Code | Product | |
| 2 | Apple | Fruit | $1.20 | P-101 | P-310 | Bread | |
| 3 | Pear | Fruit | $1.50 | P-102 | |||
| 4 | Carrot | Vegetable | $0.80 | P-205 | |||
| 5 | Bread | Bakery | $2.40 | P-310 | |||
| 6 | Milk | Dairy | $1.10 | P-412 |
=INDEX(A2:A6;EQUIV(F2;D2:D6;0))P-310 renvoie Bread. Tapez P-205 en F2 pour obtenir Carrot. Avec RECHERCHEV, il faudrait d'abord déplacer la colonne Code au début de la table.
Recherche à double entrée : INDEX avec deux EQUIV
INDEX prend un numéro de ligne et un numéro de colonne. Donnez-lui une table entière et laissez un EQUIV trouver la ligne et un autre trouver la colonne.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar |
| 2 | North | 4,200 | 3,900 | 4,800 |
| 3 | South | 3,100 | 3,600 | 3,300 |
| 4 | East | 5,200 | 4,700 | 5,600 |
| 5 | West | 2,800 | 3,000 | 3,400 |
| 6 | Region | East | ||
| 7 | Month | Mar | ||
| 8 | Sales | 5,600 |
=INDEX(B2:D5;EQUIV(B6;A2:A5;0);EQUIV(B7;B1:D1;0))East est la ligne 3 de A2:A5 et Mar la colonne 3 de B1:D1, donc INDEX renvoie la ligne 3, colonne 3 de B2:D5 : 5,600. L'EQUIV de la ligne cherche vers le bas dans la première colonne, l'EQUIV de la colonne cherche en travers de la ligne d'en-tête, et les deux plages sont alignées sur la table B2:D5. En français, la formule de B8 s'écrit =INDEX(B2:D5;EQUIV(B6;A2:A5;0);EQUIV(B7;B1:D1;0)).
Pourquoi INDEX EQUIV fait mieux que RECHERCHEV
=VLOOKUP(F2, A2:D6, 3, FALSE)
=INDEX(C2:C6, MATCH(F2, A2:A6, 0))
Dans un Excel français : =RECHERCHEV(F2;A2:D6;3;FAUX) et =INDEX(C2:C6;EQUIV(F2;A2:A6;0)). Les deux renvoient le prix. La différence apparaît quand la feuille change :
- Insérer une colonne. Insérez une colonne entre Category et Price, et RECHERCHEV demande toujours la colonne 3, qui est maintenant la nouvelle colonne vide. Excel ajuste
C2:C6enD2:D6dans la version INDEX, qui continue de fonctionner. - Chercher vers la gauche. Vu plus haut : RECHERCHEV ne le peut pas, INDEX EQUIV si.
Dans Excel 2021 et Microsoft 365, RECHERCHEX fait les deux en une seule fonction aux arguments plus simples. INDEX EQUIV reste le bon choix pour les fichiers qui doivent s'ouvrir dans Excel 2019 ou une version antérieure, et la partie INDEX est utile à elle seule. Pour des recherches sur deux conditions à la fois, voir la recherche avec plusieurs critères.
Exercice : chercher vers la gauche
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Code | Price | Stock | Product | Look for | Price | |
| 2 | P-101 | $1.20 | 40 | Apple | Milk | ||
| 3 | P-102 | $1.50 | 25 | Pear | |||
| 4 | P-205 | $0.80 | 60 | Carrot | |||
| 5 | P-310 | $2.40 | 15 | Bread | |||
| 6 | P-412 | $1.10 | 30 | Milk |
À vous : Les noms des produits sont dans la dernière colonne. En G2, renvoyez le prix du produit de F2 avec INDEX et EQUIV (MATCH).
Exercice : une recherche à double entrée
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Math | Science | Art |
| 2 | Ana | 78 | 85 | 92 |
| 3 | Ben | 64 | 71 | 88 |
| 4 | Cara | 95 | 89 | 73 |
| 5 | Dev | 82 | 67 | 79 |
| 6 | ||||
| 7 | Student | Cara | ||
| 8 | Subject | Science | ||
| 9 | Score |
À vous : En B9, renvoyez la note de l'élève de B7 dans la matière de B8.
Questions fréquentes
Comment fonctionne INDEX EQUIV ?
EQUIV trouve la position d'une valeur dans une colonne, et INDEX renvoie la valeur à cette position dans une autre colonne. Dans =INDEX(C2:C6;EQUIV("Pear";A2:A6;0)), EQUIV renvoie 2 parce que Pear est le deuxième élément de A2:A6, et INDEX renvoie le deuxième élément de C2:C6.
Pourquoi utiliser INDEX EQUIV plutôt que RECHERCHEV ?
Elle peut renvoyer une colonne située à gauche de celle où elle cherche, et elle ne se casse pas quand une colonne est insérée dans la table (il n'y a pas de numéro de colonne qui devient faux). Dans Excel 2021 et Microsoft 365, RECHERCHEX offre les mêmes avantages en une seule fonction.
Que signifie le 0 dans EQUIV ?
Il demande une correspondance exacte. Sans lui, EQUIV utilise le type 1, une correspondance approximative qui suppose une colonne triée par ordre croissant ; sur une liste non triée, elle peut renvoyer la position d'une mauvaise ligne.
Comment faire une recherche à double entrée avec INDEX EQUIV ?
Donnez à INDEX une table entière et deux EQUIV, un pour la ligne et un pour la colonne : =INDEX(B2:D5;EQUIV("South";A2:A5;0);EQUIV("Feb";B1:D1;0)) renvoie la valeur à l'intersection de la ligne South et de la colonne Feb.