Monsieur Excel
Pour tout savoir faire sur Excel !

13 avril 2020

Les fonctions RechercheV et RechercheH

Les fonctions RechercheV() et RechercheH() ont été créées pour ajouter de la flexibilité à la fonction Recherche() en permettant à l’utilisateur de choisir la position de la colonne (ou ligne) fournissant le résultat. En plus, elles ne dépendaient plus de la forme de la matrice (verticale ou horizontale), ce qui troublait certains utilisateurs.

La première syntaxe de RechercheV ou …H

La syntaxe de RechercheV était initialement =recherchev(valeur;matrice;n°colonne). En fait, elle fonctionnait comme la fonction recherche() sur une matrice carrée ou verticale, mais en ramenant la valeur de la colonne sélectionnée plutôt que celle de la dernière colonne.

Cela correspondait à la demande de nombreux utilisateurs. Mais une autre demande de nombreux utilisateurs restait insatisfaite, à savoir comment faire pour exiger que la valeur cherchée soit égale à une valeur de la première colonne.

Nous voyons dans l’image suivante, dans la cellule B14, ce qui se passe quand on fait un simple recherchev() pour trouver le nom de la personne à partir de son prénom. Comme il n’y a pas de Jules, Excel renvoie le nom de la personne ayant le dernier prénom antérieur à Jules.


Certes, on pouvait résoudre le problème comme cela a été fait en B15. Mais plus de 90% des utilisateurs d’Excel en étaient totalement incapables.

La solution utilisée en B16, grâce à la seconde syntaxe de RechercheV (avec faux), résout le problème plus aisément !

La seconde syntaxe de RechercheV ou …H

En effet, la seconde syntaxe de RechercheV (ou …H) comporte un dernier argument. Quand ce dernier argument est faux, un message d’erreur s’affiche si le prénom demandé n’appartient pas à la liste des prénoms.

Il y a une différence fondamentale quand on utilise ce dernier argument : Microsoft utilise alors un autre algorithme que l’algorithme traditionnel de Recherche().

L’ancien algorithme compare la valeur cherchée à la valeur courante dans la colonne de recherche et, dès que la valeur cherchée est inférieure à la valeur courante, s’arrêt et remonte d’une ligne pour fournir le résultat. Cela suppose que la première colonne soit rangée en ordre croissant.

Quand on utilise un recherchev() avec faux en dernier argument, c’est un autre algorithme qui est utilisé. On descend alors dans la première colonne jusqu’à ce que l’on trouve la valeur cherchée. Dès qu’on la trouve, on s’arrête ! Ce qui signifie qu’il n’y a plus du tout la nécessité que la première colonne soit rangée en ordre croissant.

En conséquence, dans notre exemple, si l’on cherche Gilles, on trouve Lebleu avec le recherche() tout court ou le recherchev() simple, et Lenoir avec le recherchev() avec faux à la fin !

Tout cela est subtil et, à mon humble avis, l’utilisateur lambda d’Excel n’en est pas conscient…

1 Commentaire(s):

  • Personnellement, j'ai toujours eu un peu de mal à comprendre le choix de Microsoft d'imposer la valeur "FAUX" du dernier argument pour une recherche "exacte" et VRAI (ou omise) pour une recherche "approchée". Mais bon... c'est juste un ressenti par rapport à une convention.

    By Anonymous cduigou, sur 5:14 PM  

Enregistrer un commentaire

<< Accueil