Supposons que vous ayez un tableau de données et que vous souhaitiez y retrouver une valeur correspondant à un critère que vous aurez défini.

Pour cela, vous avez besoin d’une fonction de consultation. Excel dispose d’une série de fonctions que vous pouvez utiliser à cette fin, notamment RECHERCHEV() et RECHERCHEH(), ainsi que la combinaison plus flexible, mais légèrement plus compliquée, de INDEX() et EQUIV().

Les fonctions de consultation d’Excel semblent assez simples, pourtant il est très facile d’obtenir une mauvaise réponse si vous ne maitrisez pas leur fonctionnement.

Excel dispose d’une fonction de recherche supplémentaire : RECHERCHE() mais elle n’est incluse que pour des raisons de compatibilité avec les anciens tableurs. Nous nous concentrerons donc sur RECHERCHEV() et RECHERCHEH(). Le V et le H dans les noms de ces deux fonctions font référence à Vertical et Horizontal respectivement, donc la bonne nouvelle est qu’une fois que vous avez appris à utiliser RECHERCHEV(), RECHERCHEH() devrait être facile, car il fonctionne exactement de la même manière, mais avec des données disposées en lignes plutôt qu’en colonnes.

I. RECHERCHEV()

La fonction RECHERCHEV() suppose que vos données sont organisées sous forme de tableau et que vous souhaitiez y retrouver les informations dans différentes colonnes.

recherchev_1

Dans cet exemple, la RECHERCHEV nous renvoi la première correspondance trouvée. Vous noterez qu’il existe une autre correspondance plus bas que RECHERCHEV() a ignorée. Si nous devons renvoyer plusieurs résultats à partir d’un tableau, les fonctions de recherche sont alors peu adaptées.

Vous devrez soit filtrer le tableau, soit utiliser un tableau croisé dynamique.

 

CORRESPONDANCE APPROXIMATIVE

Examinons maintenant un problème encore plus important avec les fonctions de recherche. L’utilisation du quatrième argument. Peut-être que nous ne connaissons pas le quatrième argument ou que nous ne sommes pas sûrs de l’orthographe de “chien”, alors nous pensons utiliser une correspondance approximative plutôt qu’une correspondance exacte :

recherchev_2

Dans notre formule nous avons changé le quatrième argument de FAUX par VRAI. Bien qu’il existe une correspondance exacte pour notre valeur dans notre tableau, la fonction renvoie maintenant une traduction complètement différente.

Il y a donc quelque chose qui ne va pas…

La raison à cela est simple : la correspondance approximative ne signifie pas qu’il faut trouver la valeur la plus proche de notre valeur de recherche, où qu’elle se trouve dans le tableau. Il s’agit en fait d’un type de correspondance beaucoup plus spécifique : elle trouve la valeur la plus proche dans notre tableau.

C’est pourquoi, lorsque vous ne spécifiez pas une correspondance exacte en utilisant FAUX comme quatrième argument dans RECHERCHEV(), vous devez vous assurer que votre tableau de données soit trié par ordre croissant, en utilisant la colonne la plus à gauche.

S’il n’y a pas de correspondance exacte, il trouvera le premier élément de notre tableau s’en rapprochant le plus.

Pour être honnête, la majorité des fois où vous utilisez un RECHERCHEV, vous recherchez une correspondance exacte. Vous pouvez donc vous demander quel est l’intérêt d’une correspondance approximative. Elles peuvent être très utiles…

Disons que nous avons une liste de prix et que nous devons vérifier la valeur d’un produit particulier à une date donnée :

recherchev_3

Notre liste de prix indique simplement la date à partir de laquelle chaque nouveau prix est entré en vigueur.

De toute évidence, nos dates de facturation ne correspondent pas nécessairement à ces dates, nous devrions donc trouver la dernière date (la plus grande) qui est inférieure ou égale à notre date de facturation, ce que la correspondance approximative fera tant que notre table de liste de prix est triée par ordre croissant de date.

II. RECHERCHEH()

Si nous reprenons notre exemple précédent : vous constaterez que RECHERCHEH() n’est que l’équivalent horizontal de RECHERCHEV(), le troisième argument faisant référence à la ligne à utiliser plutôt qu’à la colonne.

rechercheh

III. INDEX EQUIV

RECHERCHEV() et RECHERCHEH() peuvent être très utiles, mais parfois vous souhaitez consulter des données qui ne sont pas organisées de gauche à droite ou travailler avec des valeurs triées par ordre décroissant plutôt que croissant. La combinaison des fonctions INDEX() et EQUIV() sera alors la solution.

 

A. INDEX() et EQUIV()

Bien que les fonctions RECHERCHEV() et RECHERCHEH() présentent de nombreuses similitudes avec les fonctions INDEX() et EQUIV(), il existe des différences importantes.

RECHERCHEV() et RECHERCHEH() renvoient directement la valeur d’une cellule ; EQUIV() utilise une approche similaire à celle des fonctions de recherche pour trouver la cellule correspondante, mais ne renvoie pas la valeur, mais la position de la cellule dans la liste de cellules. Comme nous allons le voir, c’est la raison pour laquelle EQUIV() est souvent utilisé avec INDEX().

Par ailleurs, les fonctions de recherche utilisent un tableau entier de données dans lequel vous devez spécifier la colonne ou la ligne à utiliser, alors que EQUIV() ne fonctionne qu’avec une simple liste : les cellules d’une seule colonne ou d’une seule ligne.

 

B. INDEX() et EQUIV() combinés

En général, pour utiliser la fonction EQUIV(), il faut utiliser la valeur pour récupérer le contenu de la cellule. C’est pourquoi il faut combiner EQUIV() avec INDEX().

INDEX() prend trois arguments : le bloc de cellules qui contient notre tableau de valeurs, un numéro de ligne et un numéro de colonne facultatif qui définissent la cellule à partir de laquelle retourner la valeur dans notre bloc.

Prenons un exemple :

INDEX

Pour trouver la valeur de notre date du 26/05/15, nous utiliserons :

=INDEX(J:J;C3)

Cette fonction prend la valeur trouvée par notre fonction EQUIV() et l’utilise comme numéro de ligne. Vous noterez le numéro de colonne : nous ne l’avons pas indiqué : nous devons donc renvoyer la valeur de la première colonne de notre tableau (soit la colonne J).

Nous pouvons également inclure la fonction EQUIV() dans la fonction INDEX() pour faire tout cela dans une seule cellule

=INDEX(K:K;EQUIV(A3;J:J;1))

La prochaine fois que vous aurez besoin de rechercher quelque chose, essayez un RECHERCHEV/RECHERCHEH et un INDEX EQUIV pour voir lequel fonctionne le mieux pour vous.

 

Vous avez aimer cette article ? Ajoutez un commentaire ou partagez le !