La fonction INDEX()

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

1. Obtenir le contenu d'une cellule

La fonction INDEX rend la contenu d'une cellule lorsque les paramètres qui lui sont transmis sont :

  1. une plage de cellules (exemple : D4:G12)
  2. un nombre compris entre 1 et le nombre de ligne de la plage donnée en paramètre 1 (exemple : 8)
  3. un nombre compris entre 1 et le nombre de colonne de la plage donnée en paramètre 1 (exemple : 3)

Cliquer sur l'image pour l'agrandir

Dans l'exemple le résultat de INDEX(D4:G12;8;3) est 10, 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 : un marqueur jaune trace la ligne NbLigne et un marqueur bleu  la colonne NbColonne. La cellule ciblée est à l'intersection des 2 traits

2. Le paramètre NbColonne est absent ou égal à 0 :

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.
Etudions cet exemple :
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 : un 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

Cas particulier :

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

  •  la valeur de la cellule D10  ( par exemple = INDEX(D4:D12;7) vaut 7)
  • ou si INDEX est un argument de fonction, la référence  de la cellule D10 (son adresse dans la feuille de calcul)  par exemple dans
    •      SOMME (D4:INDEX(D4:D12;7)) qui donne 28
    • ou SOMME (D4 ; INDEX(D4:D12;7)) qui donne 8 (1 +7)
Cliquer sur l'image pour l'agrandir

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

3. Le paramètre NbLigne vaut 0

Lorsque le 2 ème paramètre (NbLigne) de la fonction INDEX est égal à 0) , le rendu de la fonction index dépend du contexte.
Etudions cet exemple :
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.

Cas particulier :

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)
  • ou si INDEX est un argument de fonction, la référence  de la cellule E4 (son adresse dans la feuille de calcul)  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

Visualisation : le marqueur jaune n'est pas utilisé, le marqueur bleu  trace la colonne NbColonne (la 3ème) .. On ne voit que la cellule ciblée en bleu

4. 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) car cette formule fonctionnera toujours, et 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 correspond à toutes les cellules de la feuille de calcul en cours d'utilisation