La fonction INDEX()
La syntaxe de la fonction : INDEX(Plage; NbLigne; NbColonne)
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 :
- 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 ).
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 :
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.
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)
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.
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).
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.
La fonction EQUIV() utilise 3 arguments :
- l'élément cherché ;
- la portion de ligne (ou de colonne) où doit s'effectuer la recherche ;
- 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))
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