Incrémenter une formule ‘recherchev’ sans changer les colonnes de références

Ok ok le titre est super compliqué mais c’est réellement ce que j’ai essayé de faire!!

Si vous utilisez Excel souvent, vous connaissez certainement l’utilité de la formule ‘recherchev’ (recherche verticale) (NDLR: j’utilise aussi le terme vlookup car mon excel est en anglais!).

Un peu plus d’info sur Vlookup/recherchev:

Donc par exemple, si vous avez deux documents:

  • Doc 1: une liste de 500 produits avec deux colonnes:  un numéro de référence et un prix
  • Doc 2: et l’autre avec cette même liste mais avec deux colonnes différentes: les références et la description du produit, mais pas dans le même ordre

Notez bien, une des colonnes contient les mêmes infos dans les deux documents. Et vous voudriez ajouter le prix correspondant à chaque référence au document 2. Rien de plus simple!

Taper simplement la formule suivante dans le document 2 (dans la prochaine colonne qui est libre) pour ‘récupérer’ le prix de l’autre document:

=vlookup($cellule de référence-celle qui est commune aux deux tableaux, dans ce cas là, c’est la référence du produit; Plage de colonnes dans l’autre document qui commence par la colonne ou se trouve les infos en commun; numéro de la colonne où se trouvent les cellules voulues dans le document 1-là ce sont les prix; false)

Donc pour récapituler voici les éléments

  1. la formule même: Vlookup
  2. $cellule de référence-celle qui est commune aux deux tableaux, dans ce cas là, c’est la référence du produit (le dollar est là pour éviter de perdre cette référence quand on incrémente la formule vers la droite car il y a des chances que la réf reste toujours la même)
  3. Plage de cellule dans l’autre document qui commence par la colonne ou se trouve les infos en commun
  4. numéro de la colonne ou se trouvent les cellules voulues dans le document 1-là ce sont les prix
  5. false: le false est simplement la pour dire que vous voulez un match exact et non approximatif.

Bon quand on a seulement une colonne à trouver, cette formule convient très bien! (si mon explication n’est pas claire, croyez moi il y a plein de tutoriels en ligne sur le sujet! mon but ici est d’aller encore plus loin)

Par contre si j’ai une cinquantaine de colonnes à ajouter (c’était le cas pour moi), le problème est que quand j’incrémente la formule vers la droite (vers le bas ce n’est pas un problème), il faut que je rentre dedans à chaque colonne pour changer l’élément no 4 de ma formule: le numéro de référence de la colonne ou se trouvent les infos que je veux récupérer dans l’autre document. Donc j’aimerais m’économiser 50 manips de colonne (avec le risque d’erreur que cela engendre bien sûr!)

Alors voici la solution tant attendue! au lieu d’un numéro dans cet élément no4, et il faut mettre le texte suivant:

COLUMN()-le chiffre que l’on veut

Alors là on atteint les limites de ma compréhension (qqes fois j’utilise qq chose qui marche en admettant que cela marche mais en ne comprenant pas forcément!); mais je vais essayer de vous l’expliquer

  1. Au lieu de donner le numéro fixe de la xième colonne dans le document annexe (document 1), je crée une référence glissante, qui prend comme référence le numéro de la colonne du document ou l’on se trouve (donc document 2 dans ce cas)
  2. Ok prenons une pause on fait refroidir le cerveau!
  3. Donc on va dire que vous êtes entrain d’écrire la formule vlookup dans la colonne H (donc no 8) du document 2
  4. Vous voulez obtenir l’info qui est dans la colonne B (donc no 2) du document 1
  5. Donc vous devrez créer une référence de colonne glissante de -6 (car 8-2=6) donc COLUMN()-6

Donc pour récapepeter, la formule donnera ça:

=VLOOKUP($G2;’Doc1′!$A:$ZZ;COLUMN()-6;FALSE)

Comme ça,  quand vous incrémentez cette formule dans la prochaine colonne,le résultat sera encore correct: vous serez dans la colonne I (donc 9) du document 2, et vous voudrez obtenir les infos de la colonne C (donc 3) du document 1 donc toujours -6

🙂