6. Fonctions EQUIV et INDEX
Fonction EQUIV
La fonction EQUIV retourne la position de la valeur en 1er argument dans la liste donnée en 2ème argument.
Syntaxe
EQUIV(valeur_cherchée; tableau_cherché; [type])
Arguments
valeur_cherchée : la valeur à chercher dans la liste donnée en 2ème argument tableau_cherché.
tableau_cherché : liste de valeurs où la valeur donnée en 1er arggument valeur_cherchée est cherchée.
type : argument facultatif, sa vleur par défaut est 1. Valeurs possibles -1, 0 ou 1. Cet argument détermine comment la comparaison aura lieu entre la valeur cherchée et les valeurs de la liste donnée en 2ème argument.
Résultat
type | Comportement de la fonction EQUIV |
1 ou omis | Les valeurs du 2ème argument doivent être en ordre croissant. La fonction EQUIV retourne la position de la valeur inférieure ou égale la plus proche de la valeur cherchée. |
0 | Les valeurs du 2ème argument ne doivent pas nécessairement être en ordre. La fonction EQUIV retourne la position de la première valeur équivalente à la valeur cherchée. Vous pouvez utiliser les caractères génériques * et ? au niveau de la valeur recherchée. Si une correspondance exacte n’est pas trouvée alors la fonction EQUIV retourne l’erreur #N/A. |
-1 | Les valeurs du 2ème argument doivent être en ordre décroissant. La fonction EQUIV retourne la position de la valeur supérieure ou égale la plus proche de la valeur cherchée. |
Exemples
Formule | Résultat | Remarques |
=EQUIV(5;{1;2;4;6};1) | 3 | Type=1. La valeur inférieure ou égale la plus proche de 5 dans la liste est 4. La position de la valeur 4 dans la liste est 3. |
=EQUIV(7;{3;7;7;1};0) | 2 | Type=0. La valeur 7 se trouve dans la liste aux positions 2 et 3. La fonction EQUIV retourne la première position 2. |
=EQUIV(6;{3;7;5;1};0) | #N/A | Type=0. La valeur 6 ne se trouve pas dans la liste. La fonction EQUIV renvoie donc l’erreur #N/A. |
=EQUIV("a?";{"a";"aaa";"bb";"ab"};0) | 4 | Type=0; le caractère générique ? correspond à un et un seul caractère. La valeur correspondante = "a?" est "ab" se trouvant à la position 4. |
=EQUIV(5;{8;6;4;2};-1) | 2 | Type=-1. La valeur supérieure ou égale la plus proche de 5 dans la liste est 6. La position de la valeur 6 dans la liste est 2. |
Fonction INDEX (Array form)
La fonction INDEX retourne un élément d’un tableau à une ou deux dimensions ou bien d’une plage de cellules. La fonction INDEX peut également retourner une partie d’un tableau.
Syntaxe
INDEX(matrice;no_lig;no_col)
Arguments
matrice : tableau ou plage de cellules
no_lig : spécifie le numéro de ligne de l’élément à retourner du tableau ou plage de cellules spécifié en 1er argument matrice. Cet argument est optionnel si matrice contient une seule ligne.
no_col : spécifie le numéro de colonne de l’élément à retourner du tableau ou plage de cellules spécifié en 1er argument matrice. Cet argument est optionnel si matrice contient une seule colonne.
Résultat
La fonction INDEX retourne l’élément de matrice situé à l’intersection de la ligne de numéro no_lig et la colonne de numéro no_col.
Si no_lig est égal à 0, alors la colonne de numéro no_col est entiérement retournée.
Si no_col est égal à 0, alors la ligne de numéro no_lig est entiérement retournée.
Exemples
Soit l’exemple suivant :
En cellule B12 la formule est
=INDEX(A1:J10;5;4)
C’est pour avoir l’élément à l’intersection de la ligne 5 et la colonne 4 de la plage A1:J10.
Exemple avec no_col=0
Pour avoir les éléments de la ligne 6 à la ligne 15 comme à l’exemple ci-dessus, procédez comme suit :
- Sélectionnez la plage de cellules A15 :J15
- Ecrivez la formule
=INDEX(A1:J10;6;0)
- Validez avec la combinaison de touches Ctrl+Shift+Entrer. En effet, cette formule retourne un tableau d’éléments, alors pour l’affficher sur la plage A15:J15, il faut valider par la combinaison de touche Ctrl+Shift+Entrer.
NB. En cliquant sur n’importe quelle cellule de la plage A15:J15, la formule est affichée à la barre de formule entre crochets { }.
Exemple avec no_lig=0
De même, si nous voulons avoir par exemple les éléments de la colonne 4 à la colonne L :
- Sélectionnez la plage de cellules L1:J10
- Ecrivez la formule
=INDEX(A1:J10;0;4)
- Validez avec la combinaison de touches Ctrl+Shift+Entrer.
Exemple avec une plage de cellules sur un seule colonne
Si la plage de cellules donnée en premier argument est sur une seule colonne, alors vous pouvez ignorer le troisime argument no_col.
Par exemple pour avoir la valeur à la troisième ligne de la colonne G, la formule est :
=INDEX(G1:G10;3)
Exemple avec une plage de cellules sur un seule ligne
Si la plage de cellules donnée en premier argument est sur une seule ligne, alors vous pouvez ignorer le deuxime argument no_lig.
Par exemple pour avoir la valeur à la sixième colonne de la ligne 5, la formule est :
=INDEX(A5:J5;;6)
Vous pouvez même l’écrire :
=INDEX(A5:J5;6)
NB. Une autre version de la fonction INDEX dite « Reference Form » est disponible en Excel 2016. Avec cette version, vous pouvez spécifier en premier argument plusieurs références à des plages de cellules. En quatrième argument est spécifié le numéro de la plage à utiliser pour la recherche.
NB. Les mêmes problèmes pour lesquels nous utilisons les fonctions RECHERCHEV et RECHERCHEH peuvent également être résolus à l’aide des fonctions EQUIV et INDEX.
Exercice
Exercice – Fonctions EQUIV et INDEX