Trucs/Astuces : Simplifez vous les recherchev

Guy_M

XLDnaute Occasionnel
Bonjour,

Voici une astuce, trop peu partagée, pour simplifier l'usage de RECHERCHEV en utilisant les formules COLONNE() ou COLONNES() par exemple :
Code:
=RECHERCHEV(ValeurRecherchée ; Matrice ; COLONNES(Matrice) ; VRAI/FAUX)
où "matrice" contient dans la première colonne les valeurs recherchée et en dernière colonne les valeurs à retourner.

Pour mémoire, ce qui est le plus embêtant avec RECHERCHEV est de calculer le numéro de colonne dans la plage de cellules contenant la valeur de retour, avec COLONNES ou COLONNE plus besoin de compter, la formule n'est plus cassée si la matrice change mais cela rend un peu moins lisible le RECHERCHEV.

Avec RECHERCHEH, on doit utiliser LIGNE() ou LIGNES().

Je pense que cela peut être utilisé dans beaucoup de formules dont INDEX, EQUIV, DECALER... pour lesquelles je me donne beaucoup de mal à compter les lignes et les colonnes.

En espérant que cela vous sera utile.

A bientôt
Guy
 

ERIC S

XLDnaute Barbatruc
Bonjour et bravo pour ta démarche de partage d'info

Une petite remarque pour aller jusqu'au bout : met un petit fichier avec des exemples qui permettront à ceux qui font des recherches sur ce forum d'avoir une solution autonome. Il faut trop souvent croiser plusieurs sources pour comprendre ...

En attente de ton exemple, super démarche
 

Guy_M

XLDnaute Occasionnel
Bonjour Dranreb et bonne année,

Sauf erreur de ma part, INDEX a besoin d'un numéro de ligne et d'un numéro de colonne et avec EQUIV on en fournit en général qu'un seul des 2, donc l'utilisation de LIGNE ou COLONNE devrait être très pratique.
Pour ma part, j'utilise très peu INDEX/EQUIV, je le trouve assez peu lisible mais avec les tableaux (listobject) où on référence les colonnes par leur nom,la syntaxe devient :
Code:
=INDEX(NomTableau; EQUIV(valeur_recherchée; NomColonneRecherche; 0); COLONNE(NomColonneRetour))
c'est semble peu plus lisible.

Merci pour la réponse

A bientôt
Guy
 

Dugenou

XLDnaute Barbatruc
Bonjour Guy,
Comme tu le dis très justement dans ton premier message : cette formule necessite que la valeur à retourner se trouve dans la dernière colonne. Pour ma part, j'utilise deux petits trucs quand il faut compter les colonnes pour construire la formule recherchev :
J'insère une ligne au dessus du tableau où, avec la formule =colonne() recopiée à droite j'affiche le N° (un + ou - une valeur fixe quand le tableau ne commence pas en colonne A)
j'utilise un equiv pour calculer le N° de colonne à retourner mais il vrai qu'alors la formule est moins lisible.
Cordialement
 

Guy_M

XLDnaute Occasionnel
Bonjour Dugenou et bonne année,

Maintenant que j'ai découvert l'idée d'utiliser COLONNE, ton idée me paraît bien compliquée, pour le numéro d'index de la colonne à retourner il suffit de faire COLONNE(AdrCelluleDansLaColonneRetour)-COLONNE(AdrCelluleDansLaColonneRecherche)+1 (par exemple pour la plage C5:Z100 avec les données dans la colonne M ou fait : COLONNE(M5)-COLONNE(C5)+1

Avec un tableau (listbox) et ses références structurées c'est encore plus simple les adresses de cellules sont remplacées par les noms de colonne.

Merci pour la réponse

A bientôt
Guy
 

Statistiques des forums

Discussions
312 115
Messages
2 085 447
Membres
102 889
dernier inscrit
monsef JABBOUR