Comment croiser une recherchev avec une rechercheh ?

Parfois, quand on veut croiser des tableaux, sans connaître le VBA et sans rentrer dans des processus alambiquées avec création d’onglets supplémentaires, il faut trouver des petites astuces qui permettent de se simplifier la vie. Vous allez voir ici comment une simple colonne supplémentaire, contenant une formule basique, peut vous aider à automatiser un rapport et gagner ainsi en temps de traitement.

La question : « Peut-on faire une rechercheh imbriquée dans une recherchev ? » L’idée étant de remplir automatiquement un rapport sur les primes mensuelles de vendeurs, à partir d’un autre onglet contenant une liste de vendeurs et leurs primes sur plusieurs colonnes, sans avoir à réinventer les formules et les liaisons à chaque fois (nombreuses lignes à compiler).

 

Ma réponse : Pour faire fonctionner le tableau, il faut que la recherche horizontale aille chercher le mois concerné et que la recherche verticale retrouve l’information pour le vendeur correspondant à ce mois.

Pour que vous puissiez suivre le fil de cet article, vous pouvez télécharger l’exemple en question en suivant ce lien. Dans ce fichier, deux onglets : Part 1 qui est le tableau de synthèse et Part 2 qui est la base de données des primes par vendeurs.

Comme souvent quand on veut écrire des formules un peu plus complexes, il faut généralement trouver la petite touche supplémentaire ou le bon ordre d’imbrication pour que cela fonctionne. Ce cas est intéressant car il va nous permettre de décomposer le processus pour l’imbrication.

Rappel : Que fait la recherchev ? Si vous avez vu la vidéo d’un de mes articles précédents, vous aurez compris que cette fonction va rechercher dans une colonne spécifique d’un tableau donné (de gauche à droite), une valeur relative à celle qui vous intéresse (ex : le chiffre d’affaire du mois de mai d’un client donné, dans le récapitulatif annuel). Maintenant, que fait la rechercheh ? la même chose mais dans une ligne spécifique (de haut en bas) et non en colonne.

Dans notre exemple, si la rechercheh doit savoir trouver la ligne correspondant au vendeur dans le mois recherché, la recherchev qui trouve le vendeur ne renverra qu’une valeur de prime. A partir de là, les deux recherches ne peuvent pas se mêler car elles renvoient des éléments qui ne se complètent pas et qui ne peuvent s’utiliser l’un l’autre.

L’astuce pour ce faire est de rajouter une colonne au tableau Part 2, après le code vendeur, intégrant une formule simple indiquant le numéro de la ligne de l’onglet : = LIGNE()  (ça marche aussi si vous saisissez manuellement le numéro de ligne vous-même, mais si vous avez 200 vendeurs… vous verrez, ça agace au bout de 50…).

J’utilise ensuite la recherchev pour trouver le numéro de la ligne sur laquelle se trouve le code vendeur (attention, si vous avez des doublons sur votre liste, la recherchev ne sera pas efficace à 100%… dans ce cas, je vous conseille d’identifier les doublons). Ensuite, il me reste à intégrer cette recherchev comme troisième argument de ma rechercheh (celui indiquant le numéro de ligne du tableau dans laquelle la valeur cherchée est censée se trouver), et à la retrancher du nombre de lignes présentes dans l’onglet avant la première ligne de ma matrice de recherche (dans notre exemple, je retire 2).

Je vous ai perdu ? Presque ? Alors essayons de décomposer schématiquement cette formule :

= RECHERCHEH ( CELLULE CONTENANT LE MOIS EN PART1 ; PLAGE DE CELLULES DU TABLEAU PART2 ; RECHERCHEV DONT LE RESULTAT INDIQUE LE N° DE LIGNE DU VENDEUR – 2 LIGNES ; FAUX)

 

Une fois la formule achevée, il ne vous reste plus qu’à l’incrémenter dans tout votre tableau et ce dernier se remplira automatiquement à chaque fois que vous alimenterez la base de données. L’avantage premier est que cette solution est 100% automatique et ne nécessite pas de retouches régulières.

Le point important de cette astuce est que je n’ai pas essayé d’utiliser les fonctions pour trouver directement les informations cherchées mais pour me servir de relais vers une autre information. Si vous avez des exemples de mise en place de formules imbriquées qui ne fonctionnent pas, et que vous voulez que j’y jette un oeil,  ou si vous avez trouvé une solution plus simple à notre exemple, n’hésitez pas à m’en faire part, ainsi qu’aux visiteurs, dans un commentaire.

Merci à Caroline pour son exemple.

Bonne recherche !

 



5 réflexions sur “Comment croiser une recherchev avec une rechercheh ?”

  1. Bonjour

    Merci je vais tester sur ce que je cherche à faire car je suis perdu.
    Si je peux avoir un brun d’aide je prends

    tableau 1 : planning ds activités de mes éducateurs par jours avec le volume horaire.
    tableau 2 : recapitulatif du volume horaire par éducateur et par jour

    objectif : récupérer le volume horaire selon l’éducateur et le date afin de ne pas remplir 2 fois l’information.

    Si quelq’un a une solution pour moi

    merci par avance

  2. Sans ajouter de colonne dans « part 2 » (avec le numéro de ligne), on peut utiliser la fonction EQUIV pour trouver le numéro de ligne et de colonne. On sauve ainsi une étape.

    =INDEX(‘Ex Caroline Part 2’!$A$3:$AM$7;EQUIV(‘Ex Caroline Part 1 solution’!$A4;’Ex Caroline Part 2′!$A$3:$A$7;0);EQUIV(C$3;’Ex Caroline Part 2′!$A$3:$AM$3;0))

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.