Aller au contenu principal


La fonction INDEX()

La syntaxe de la fonction : INDEX(Plage; NbLigne; NbColonne)

Dernière MAJ :
25 avr 2024
Billet créé le :
22 nov 2021

1. But : obtenir la valeur d'une cellule

La fonction INDEX --- exemple : INDEX (D4:G12 ; 8 ; 3) --- rend la valeur contenue dans la cellule ciblée lorsque les paramètres qui lui sont transmis sont :

  1. une plage de cellules (dans l' exemple : D4:G12) ;

nbLigne : un nombre compris entre 1 et le nombre de ligne de la plage donnée en paramètre 1 (dans l'exemple : nbLigne = 8  et sa valeur max  sera 9 = 12-4 +1 --- poteaux et intervalles --- ) ;

nbColonne : un nombre compris entre 1 et le nombre de colonne de la plage donnée en paramètre 1 (dans l'exemple : nbColonne = 3  et sa valeur max  sera 4 : de D à G ).

Cliquer sur l'image pour l'agrandir

Dans l'exemple le résultat de INDEX(D4:G12; 8 ; 3) est 10 : le contenu de la cellule F11 qui est à l'intersection de la 8ème ligne et de la 3ème colonne de la plage D4:G12.

Visualisation : Dans la plage D4:G12, un marqueur jaune trace la ligne "NbLigne" et un marqueur bleu,  la colonne "NbColonne". La cellule ciblée est à l'intersection des 2 tracés

2. Cas particuliers :

Cas n°1 : Le paramètre NbColonne est égal à 0  (ou est absent) :

Lorsque le 3 ème paramètre de la fonction INDEX est absent (ou est égal à 0) , le rendu de la fonction index dépend du contexte.   

Exemple 1 :   
index(D4:G12; 2) :  ici le paramètre NbColonne est absent (donc vaut 0). INDEX ne rend plus une valeur mais la référence d'une plage de cellule, celle formée par les cellules D5:G5 ; ie  la 2ème ligne  de la plage D4:G12.

Cliquer sur l'image pour l'agrandir

Visualisation : le marqueur jaune trace la ligne "NbLigne" (la 2ème), le marqueur bleu n'est pas utilisé car il n'y a pas de colonne "NbColonne". On ne voit que la plage ciblée en jaune.

Exemple 2 :

index(D4:D12; 7) : ici le paramètre NbColonne est toujours absent (donc vaut 0) et la plage est une portion de colonne (la  D). Le rendu d' INDEX, sera :

  •  la valeur de la cellule D10 car le surlignage jaune est une cellule ( dans l'exemple = INDEX(D4:D12; 7) vaut 7)
  • ou la référence (l'adresse dans la feuille de calcul)  de la cellule D10 lorsque INDEX est un argument de fonction, par exemple dans
    •      SOMME (D4:INDEX(D4:D12;7)) qui donne 28
    • ou SOMME (D4 ; INDEX(D4:D12;7)) qui donne 8 (1 +7)
Repérez la différence de syntaxe dans la fonction somme qui utilise ":" pour sommer les valeurs dans la plage et ";" pour sommer les valeurs des cellules aux extrémités de la plage. 

Cliquer sur l'image pour l'agrandir

Cas  n°2 : le paramètre n°2 (NbLigne) vaut 0  (ou est absent) :

Lorsque le 2 ème paramètre (NbLigne) de la fonction INDEX est égal à 0 , le rendu de la fonction index dépend du contexte.

Exemple 1  :   
index(D4:G12; 0; 2) :  ici le paramètre NbLigne vaut 0. INDEX ne rend plus une valeur mais la référence d'une plage de cellule, celle formée par les cellules E5:E12 ; ie  la 2ème colonne  de la plage D4:G12.

Cliquer sur l'image pour l'agrandir

Visualisation : le marqueur jaune n'est pas utilisé ( NbLigne=0), le marqueur bleu trace la colonne "NbColonne" (la 2ème) . On ne voit que la plage ciblée en bleu.

Exemple 2 :

index(D4:G4;0;3) : ici le paramètre NbLigne est  vaut  toujours 0 mais la plage est une portion de ligne  (la  4). Le rendu d' INDEX, sera :

 la valeur de la cellule E4  ( par exemple =INDEX(D4:G4; 0; 3) vaut 3) ;

la référence  de la cellule E4 (son adresse dans la feuille de calcul)  si INDEX est un argument de fonction,   par exemple dans

    •      SOMME (D4:INDEX(D4:G4;0;3)) qui donne 6 ;
    • ou SOMME (D4 ; INDEX(D4:G4;0;3)) qui donne 4 (1 +3).

Cliquer sur l'image pour l'agrandir

3. La combinaison INDEX EQUIV

Les paramètres NbLigne et NbColonne de la fonction INDEX peuvent être obtenus par "calcul", en autres, grâce à la fonction EQUIV.

information complémentaire disponible en cliquant ici

La fonction EQUIV() utilise 3 arguments :

  1. l'élément cherché ;
  2. la portion de ligne (ou de colonne) où doit s'effectuer la recherche ;
  3. 0 (pour rechercher une correspondance exacte).

et rend la position de l'élément cherché dans la (portion de) ligne ou de colonne..

Exemple :

INDEX(A2:G8; EQUIV("Pages en noir et blanc"; A2:A8; 0); EQUIV("B207";A2:G2;0))  
 

Cliquer sur l'image pour l'agrandir

Dans cette formule :

"NbLigne" est le résultat de EQUIV("Pages en noir et blanc"; A2:A8; 0) donc a 7 pour valeur ;

  • "NbColonne" est le résultat de EQUIV("B207"; A2:G2; 0) donc a 5 pour valeur.

La formule INDEX(A2:G8; EQUIV("Pages en noir et blanc"; A2:A8; 0); EQUIV("B207"; A2:G2; 0)) équivaut donc à INDEX(A2:G8; 7; 5) et donne la valeur 6011 qui est le nombre de pages imprimées en noir et blanc dans la salle B207

Si l'on transforme la formule en 
INDEX($A$1:$AMJ$1048576; EQUIV("Pages en noir et blanc"; $A:$A; 0); EQUIV("B207";$2:$2;0))

Cela conduit à la gestion dynamique des données (à découvrir ICI) : cette formule rendra toujours le nombre de pages imprimées en noir et blanc en salle B207 même si sont insérés des critères supplémentaires à n'importe quelle position de la colonne A (la plage $A:$A) et des salles nouvelles à n'importe quelle position de la ligne 2 (la plage $2:$2
Note : la plage $A$1:$AMJ$1048576 ou $1:$1048576 correspond à toutes les cellules de la feuille de calcul en cours d'utilisation pour LibreOffice Calc ou MS Excel