Numeriblog Google Workspace Google Sheets, le tableur surpuissant Google Sheets : comment réaliser une RECHERCHEV() avec la colonne contenant la clé de recherche pas forcement à gauche de votre plage de données ?

Google Sheets : comment réaliser une RECHERCHEV() avec la colonne contenant la clé de recherche pas forcement à gauche de votre plage de données ?

La RECHERCHEV en quelques mots La fonction RECHERCHEV() permet d’afficher une donnée correspondant à la valeur d’une autre cellule à partir d’une autre base de données. Elle accepte quatre arguments, dont la clef de recherche […]

personnes ont consulté cet article

2 minutes

Rédigé par Pierre Le Moing - il y a 12 mois

Ce que vous allez découvrir

  • La RECHERCHEV en quelques mots
  • RECHERCHEV sur une plage de données dont la colonne de la clef n’est pas à gauche de la colonne de résultats.
  • Que sont les matrices dans Google Sheets ?
  • Comment afficher plus plusieurs résultats en une seule formule RECHERCHEV ?

Google Sheets : comment réaliser une RECHERCHEV() avec la colonne contenant la clé de recherche pas forcement à gauche de votre plage de données ?

La RECHERCHEV en quelques mots

La fonction RECHERCHEV() permet d’afficher une donnée correspondant à la valeur d’une autre cellule à partir d’une autre base de données. Elle accepte quatre arguments, dont la clef de recherche et la plage dans laquelle rechercher la valeur équivalente. Cette plage doit couvrir plusieurs colonnes, dont la première doit contenir la clef recherchée.

Voici une base de données, plage A1:D6, pour illustrer un classique RECHERCHEV dans la cellule G2 :

=RECHERCHEV(F2;A:D;2;0) qui renverra bien sûr, le résultat “B”.

La colonne Code étant située à gauche de la colonne Article, aucun problème pour retrouver l’Article en fonction du Code.

Par contre avec exactement la même base de données, comment obtenir le Code avec l’Article en clé de recherche ?

RECHERCHEV sur une plage de données dont la colonne de la clef n’est pas à gauche de la colonne de résultats.

Solution : il faut créer une matrice dont la première colonne est la colonne B et la deuxième la colonne A en utilisant les { } et en les séparant par un \

=RECHERCHEV(F2;{B:B\A:A};2;0)

Que sont les matrices dans Google Sheets ?

Dans Sheets vous pouvez définir une matrice en utilisant des accolades “{ }” :

Par exemple, si vous tapez 

={1;2;3} 

dans la cellule A1, alors le résultat sera : 1 en A1, 2 en A2 et 3 en A3

Si vous souhaitez distribuer ces valeurs en ligne plutôt qu’en colonne, alors il faut saisir 

“={1\2\3}” 

Nota : pour un classeur Sheets paramétré au format américain, le séparateur est aussi le “;” pour obtenir un résultat en colonne, par contre il faut remplacer le “\” (alt gr + 8) par une “,” (virgule) pour un résultat en ligne.

Appliquons donc la notion de matrice à la fonction RECHERCHEV() en reconstruisant la plage dans le bon ordre, c’est-à-dire en plaçant la colonne Article avant Code : 

=RECHERCHEV(F2,{B:B\A:A};2;0)

Comment afficher plus plusieurs résultats en une seule formule RECHERCHEV ?

Vous en voulez encore plus ?

Bon d’accord, avec Sheets vous pouvez créer votre matrice de recherche, mais vous pouvez aussi créer votre matrice de résultat, si tant est que Sheets “comprend” que l’on veut travailler en matrice pour la recherche et pour le résultat aussi… C’est quoi ce charabia ?

En fait, avec une seule formule dans la cellule G2, vous souhaitez obtenir plusieurs colonnes de résultats en fonction d’une seule clef de recherches et en une seule formule, il faut créer une matrice de résultats comme vous avez créé une matrice de recherche précédemment.

Par exemple : vous souhaitez afficher le Code, le Stock et la Référence de l’article en fonction uniquement de sa désignation.

Si la formule est : =RECHERCHEV(F2;{C:C\A:A\B:D};{2\5\3};0)

Le résultat donne :

> Ce qui n’est pas le résultat espéré, car il n’y a pas de Stock ni d’Article !

Il suffit donc d’encapsuler tout ça dans un ARRAYFORMULA pour indiquer à Sheets que vous travaillez aussi avec une matrice de résultats.

La formule devient donc : 

=ARRAYFORMULA(RECHERCHEV(F2;{C:C\A:A\B:D};{2\5\3};0))

Et le résultat est :

> Bingo, c’est gagné 😁

Que de temps gagné pour afficher une série de résultats à partir d’une seule formule RECHERCHEV !

À ce stade vous vous posez la question de savoir si cette formule renvoie un résultat si vous ajoutez une Désignation en F3, puis F4, etc.

> et bien oui, il suffit de remplacer F2 (la clé de recherche) par F2:F (une plage) et, tant à faire, d’ajouter devant le RECHERCHEV une condition si vide 

SI(F21:F= » »; » »; pour éviter les erreurs #N/A, Valeur «  » introuvable lors de l’évaluation de VLOOKUP.

La formule finale est donc : =ARRAYFORMULA(SI(F2:F= » »; » »;RECHERCHEV(F2:F;{C:C\A:A\B:D};{2\5\3};0)))

J’espère que cette solution vous permettra d’utiliser la RECHERCHEV d’une façon encore plus efficace et efficiente ! N’hésitez pas à nous contacter pour vous accompagner dans votre formation ou pour des projets spécifiques autour des outils Google.

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Rédacteur

S’abonner
Notification pour
guest
9 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Christophe B

Super article ! limpide, facile à comprendre et hyper utile.
MERCI !!!

Cet avis vous a été utile ?

Christophe Bichon

Parfait merci beaucoup pour ce tuto très utile.
En complément, au lieu d’utiliser SI(F21:F=””;””;…), j’utilise IFNA Je n’ai pas vérifié si ça passait avec Arrayformula

Cet avis vous a été utile ?

Alexis
Alexis

Vraiment utile ! Merci !
La logique se rapproche plus du RECHERCHEX, ce qui offre plus de liberté.

Cet avis vous a été utile ?

Manu
Manu

Bonjour, merci pour ce tuto très utile.
Je chercher à afficher plusieurs lignes de résultat avec la même clé de recherche.
Exemple : Dans ma base de donnée, j’ai plusieurs lignes avec Mme Bourdeau. Je souhaite faire une rechercheV de Mme Bourdeau et afficher toutes les lignes trouvés dans la base de donnée ( ici j’ai 10 lignes avec cette même personnes).
Merci de votre aide.
Manu

Cet avis vous a été utile ?

Alexis
Alexis
Répondre à  Manu
11 mois il y a

Vous pouvez essayer la fonction FILTER()
Avec le même raisonnement ça donnerait :
=FILTER({C:C\B:B};A:A= »Mme Bourdeau »)

Cet avis vous a été utile ?

Manu
Manu
Répondre à  Alexis
11 mois il y a

Merci Alexis, je vais tester ça.

Cet avis vous a été utile ?

Tetu
Tetu

Bonjour,
je suis bloquée avec cette formule, que j’arrive pas a mettre en place dans Sheet :
=SI([@Date]= » »; » »;RECHERCHEX(MOIS([@Date]);Listes!$C$2:$C$40;Listes!$D$2:$D$40))
cela me mets ERROR
Merci de votre aide

Cet avis vous a été utile ?

Pierre
Répondre à  Tetu
6 mois il y a

Bonjour,
RECHERCHEX n’existe pas dans Sheets, il faut utiliser une matrice { } comme expliqué dans l’article.
Bonne journée

Cet avis vous a été utile ?

hatoun
hatoun

Merci beaucoup

Cet avis vous a été utile ?