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()
en anglais
leur traduction en anglais pour les macro-commandes ou pour google sheet :  lookup(),  Vlookup(),  Hlookup()
1. La fonction Recherche()

Recherche utilise 3 paramètres:

  1. une valeur ;
  2. une plage A qui contient la valeur donnée en  1er paramètre ( NB : la plage doit être  une ligne ou une colonne) :
  3. 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 contenant  la valeur donnée en 1er paramètre dans la plage A.


En images :

  • cas 1 : les plages sont des portions de colonnes
Cliquer sur l'image pour l'agrandir
  • cas 2 : les plages sont des portions de lignes

La méthode à suivre peut se résumer ainsi :

Cliquer sur l'image pour l'agrandir
2. La fonction RechercheH()

RechercheH utilise 3 paramètres:

  1. une valeur ;
  2. une plage dont la 1ère ligne contient la valeur donnée en  1er paramètre, la valeur indique la colonne où figure le résultat de la fonction.
  3. 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 :

Cliquer sur l'image pour l'agrandir

La méthode à suivre peut se résumer ainsi :

  1. 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.
  2. descendre, à partir  de la cellule trouvée de L lignes ( où L est le 3 ème paramètre).
  3. la cellule trouvée contient le résultat de rechercheH..
3. La fonction RechercheV()

RechercheV utilise 3 paramètres:

  1. une valeur ;
  2. 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 ;
  3. 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 :

Cliquer sur l'image pour l'agrandir

La méthode à suivre peut se résumer ainsi :

  1. 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.
  2. se décaler, à partir  de la cellule trouvée,  et vers la droite, de C colonnes ( où C est le 3 ème paramètre).
  3. 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()

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 ::

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 Emile dans la plage B8:B17
L'utilisation de EQUIV conduit à une gestion dynamique des données (à découvrir ICI).

Application aux listes de validation

Par défaut une liste de validation affiche les données figurant dans une colonne (resp une ligne) d'un tableau.
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) produit une erreur et doit être remplacée par date(2022;11;1)).
Grâce à une fonction de recherche, il est possible de remplacer automatiquement la donnée inutilisable (ie : novembre par 11) dans les formules de calcul.
Dans l'exemple illustré par l'image ci-dessous,  supposons que la liste des mois figure dans la plage A1:A12 de la feuille "data2".
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.

Cliquez pour agrandir l'image