Les fonctions de recherche
Ce billet présente 3 fonctions qui permettent de rechercher la valeur d'une cellule présente dans une plage d'une feuille de calcul.
- recherche()
- rechercheV()
- rechercheH()
Recherche utilise 3 arguments :
- une valeur ;
une plage A qui contient la valeur donnée en 1er paramètre (NB : la plage doit être une ligne ou une colonne) ;
une plage B : si la plage A est une ligne (resp. une colonne), la plage B doit être une ligne (resp. une colonne).
et rend la valeur de la cellule de la plage B qui a la même position ( ou index ) que la cellule dans la plage A qui contient la valeur donnée en 1er paramètre.
En images :
- cas 1 : les plages sont des portions de colonnes.
- cas 2 : les plages sont des portions de lignes.
La méthode à suivre peut se résumer ainsi :
RechercheH utilise 3 arguments :
- une valeur ;
une plage dont la 1ère ligne contient la valeur donnée en 1er paramètre, cette valeur indique la colonne où figure le résultat de la fonction ;
un index (position dans la colonne repérée en 2, de la valeur-résultat à renvoyer).
et rend la valeur de la cellule à l'intersection de la ligne (trouvée grâce à index) et la colonne (trouvée grâce à valeur).
En image :
La méthode à suivre peut se résumer ainsi :
chercher la cellule qui contient la valeur du 1er paramètre dans la 1ère ligne de la plage donnée en 2ème paramètre ;
descendre, à partir de la cellule trouvée de L lignes ( où L est le 3 ème paramètre) ;
- la cellule trouvée contient le résultat de "rechercheH".
RechercheV utilise 3 arguments :
- une valeur ;
une plage dont la 1ère colonne contient la valeur donnée en 1er paramètre, cette valeur repère la ligne qui contient le résultat de la fonction ;
un index ( position dans la ligne repérée en 2 de la valeur- résultat à renvoyer).
et rend la valeur de la cellule à l'intersection de la ligne (trouvée grâce à valeur) et la colonne (trouvée grâce à index).
En image :
La méthode à suivre peut se résumer ainsi :
- chercher la cellule qui contient la valeur du 1er paramètre dans la 1ère colonne de la plage donnée en 2ème paramètre ;
- se décaler, à partir de la cellule trouvée, et vers la droite, de C colonnes ( où C est le 3 ème paramètre) ;
- la cellule trouvée contient le résultat de rechercheV.
EQUIV et RechercheH ou RechercheV
Le 3ème paramètre des fonctions RechercheH() et RechercheV() est un nombre indiquant la position de la cellule dont on cherche à récupérer la valeur. Ce nombre peut être "calculé" en utilisant 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 :
RechercheH("CA2020"; B8:E17; 6) devient RechercheH("CA2020"; B8:E17; EQUIV("Emilie"; B8:B17; 0))
En effet, EQUIV("Emilie"; B8:B17; 0) rends 6 ; position de "Emilie" dans la plage "B8:B17".
L'utilisation de EQUIV conduit à une gestion dynamique des données (à découvrir ICI).
Application aux listes de validation
Ces données doivent être facilement compréhensible par l'utilisateur. Par exemple, on affichera la liste des mois d'une année par leur nom plutôt que par leur rang dans l'année (ie : novembre plutôt que 11).
Cependant, il peut arriver que la donnée affichée (ie: novembre) ne soit pas utilisable dans les fonctions utilisées dans la feuille (exemple : date(2022; "novembre"; 1) et produise une erreur et doit donc être remplacée par date(2022;11;1)).
L'ajout de la liste des nombres allant de 1 à 12 dans la colonne B1:B12 permet par l'usage de la fonction date(2022;rechercheV("novembre";data2!A1:B12;2;0);1) de remplacer "novembre" par 11.