Menu

Fonction INDEX Excel : une valeur par ligne et par colonne

=INDEX(A2:C6;3;2) renvoie la valeur de la troisième ligne et de la deuxième colonne de A2:C6. Pour le n-ième élément d'une liste, une ligne ou une colonne entière, et la valeur à une position trouvée par EQUIV.

Chaque feuille de cette page est interactive : modifiez un nombre ou une formule et elle se recalcule.

=INDEX(A2:C6;3;2) renvoie la valeur de la troisième ligne et de la deuxième colonne de la plage A2:C6. Les positions se comptent depuis la cellule en haut à gauche de la plage : la ligne 3 de A2:C6 est donc la ligne 4 de la feuille. Changez le 3 ou le 2 et regardez le résultat se déplacer. INDEX porte le même nom en français et en anglais ; le tableau affiche les formules en anglais, avec des virgules, mais vous pouvez aussi les y taper en français, avec des points-virgules.

Ligne 3, colonne 2 de la table
G2
ABCDEFG
1ProductCategoryPriceRowColumnResult
2AppleFruit$1.2032Vegetable
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =INDEX(A2:C6;E2;F2)

E2 contient le numéro de ligne et F2 le numéro de colonne. La ligne 3 est Carrot et la colonne 2 est Category, donc G2 affiche Vegetable. Mettez F2 à 1 pour obtenir le nom du produit, ou E2 à 6 pour voir #REF! : A2:C6 n'a que cinq lignes.

Syntaxe de INDEX

=INDEX(array, row_num, [column_num])
  • array (tableau) : la plage (ou la matrice) à lire.
  • row_num (no_lig) : la ligne voulue, à partir de 1. Utilisez 0 pour toutes les lignes.
  • column_num (no_col) : la colonne, à partir de 1. Facultatif quand la plage n'a qu'une colonne ou qu'une ligne ; utilisez 0 pour toutes les colonnes.

Sur une seule colonne, un nombre suffit : =INDEX(A2:A6;4) est le quatrième élément, Bread. Une seconde forme, =INDEX((A2:C3;A5:C6);1;1;2), choisit dans l'une de plusieurs plages ; elle sert rarement.

Obtenir le n-ième élément, ou le dernier

INDEX sur une seule colonne répond à "quel est l'élément numéro n". Combinée avec NBVAL (COUNTA en anglais), qui compte les cellules remplies, elle renvoie le dernier élément d'une liste qui s'allonge.

N-ième et dernier élément
D3
ABCD
1ProductItem number2
2AppleNth itemPear
3PearLast itemMilk
4Carrot
5Bread
6Milk
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =INDEX(A2:A6;NBVAL(A2:A6))

D1 vaut 2, donc D2 renvoie Pear. NBVAL compte 5 produits, donc D3 renvoie le cinquième, Milk. Supprimez Milk et D3 renvoie Bread. En français, la formule de D3 s'écrit =INDEX(A2:A6;NBVAL(A2:A6)). Dans un vrai fichier, faites pointer les deux formules vers une plage plus longue comme A2:A1000 pour inclure les nouvelles lignes ; NBVAL ne fonctionne ainsi que si la colonne n'a pas de cellules vides au milieu.

Renvoyer une ligne ou une colonne entière avec 0

Un 0 comme numéro de ligne signifie "toutes les lignes", donc INDEX(B2:D5;0;2) est toute la deuxième colonne. Dans SOMME, MOYENNE ou MAX, cela fait le total d'une colonne choisie par son numéro.

Total d'un mois
G2
ABCDEFG
1RegionJanFebMarMonth numberTotal
2North4,2003,9004,800215,200
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =SOMME(INDEX(B2:D5;0;F2))

Le mois 2 est Feb, et G2 additionne C2:C5 : 15,200. Mettez F2 à 3 pour mars. Une ligne entière fonctionne de la même façon : =SOMME(INDEX(B2:D5;3;0)) fait le total de East. Dans Excel 2021 et Microsoft 365, =INDEX(B2:D5;0;2) seule propage les quatre valeurs vers le bas. Pour choisir la colonne par son en-tête plutôt que par un numéro, remplacez F2 par un EQUIV : c'est le modèle INDEX et EQUIV.

INDEX sur une matrice ou un résultat propagé

INDEX lit aussi les matrices que renvoie une formule, pas seulement les plages de la feuille. Elle choisit ainsi un élément dans une liste triée, filtrée ou dédoublonnée sans écrire la liste au préalable.

Produit le plus cher et le moins cher
E2
ABCDEF
1ProductCategoryPriceMost expensiveBread
2AppleFruit$1.20SecondPear
3PearFruit$1.50CheapestCarrot
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

TRIERPAR (SORTBY en anglais) renvoie les cinq produits classés par prix, et INDEX prend l'élément 1 (Bread), l'élément 2 (Pear) ou, avec le tri croissant, l'élément 1 (Carrot). En français, la formule de E2 s'écrit =INDEX(TRIERPAR(A2:A6;C2:C6;-1);1). Passez le prix de Milk à 3 et il devient le plus cher. Si une liste propagée se trouve déjà sur la feuille, par exemple en H2, Excel 2021 et Microsoft 365 permettent d'écrire =INDEX(H2#;2) pour son deuxième élément.

Exercice : le total d'un mois choisi

Ventes par mois
G2
ABCDEFG
1RegionJanFebMarMonth numberTotal
2North4,2003,9004,8001
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : En G2, renvoyez le total du mois dont le numéro est en F2 (1 = Jan, 2 = Feb, 3 = Mar), avec INDEX.

Questions fréquentes

Que fait la fonction INDEX dans Excel ?

Elle renvoie la valeur située à une position donnée dans une plage : =INDEX(A2:C6;3;2) renvoie la valeur de la troisième ligne et de la deuxième colonne de A2:C6. Les positions se comptent depuis la cellule en haut à gauche de la plage, pas depuis la ligne 1 de la feuille.

Comment obtenir la dernière valeur d'une colonne avec INDEX ?

Utilisez le nombre de cellules remplies comme numéro de ligne : =INDEX(B2:B100;NBVAL(B2:B100)) renvoie la dernière valeur d'une colonne sans trous. Avec des trous, =LOOKUP(2,1/(B2:B100<>""),B2:B100) (forme anglaise) renvoie la dernière valeur non vide.

Pourquoi INDEX renvoie-t-elle #REF! ?

Le numéro de ligne ou de colonne dépasse la plage. =INDEX(A2:A6;7) demande le septième élément d'une plage de cinq cellules et renvoie #REF!.

Comment renvoyer une colonne entière avec INDEX ?

Utilisez 0 comme numéro de ligne : =INDEX(B2:D5;0;2) renvoie toute la deuxième colonne. Entourez-la d'une fonction pour en faire le total, comme =SOMME(INDEX(B2:D5;0;2)), ou laissez-la se propager dans Excel 2021 et Microsoft 365.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER