Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

RECHERCHEV plus élaborée: comment faire

sorofin

XLDnaute Nouveau
Bonjour,

Je possède:
*feuille 1: des désignations longues d'articles (exemple : "joint spiralé diamètre 10")
*feuille 2: des noms de catégories ("joint", "joint spiralé", "moteur électrique", etc...)

Je voudrais affecter à chaque article de la feuille 1, le numéro de catégorie définie dans la feuille 2.

Remarque :
RECHERCHEV a très rapidement montré ses limites car les champs ne sont jamais équivalents : il faut rechercher les mots (parfois composés) de la feuille 2 dans un ensemble de mots de la feuille 1.

Auriez-vous une macro qui puisse me faire cela ?

Cordialement,

Guillaume
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : RECHERCHEV plus élaborée: comment faire

Bonjour,


=RECHERCHEV(A2&"*";$G$2:$H$7;2;FAUX)


JB
 

Pièces jointes

  • Classeur1.xls
    25.5 KB · Affichages: 97
  • Classeur1.xls
    25.5 KB · Affichages: 96
  • Classeur1.xls
    25.5 KB · Affichages: 98

sorofin

XLDnaute Nouveau
Re : RECHERCHEV plus élaborée: comment faire

Un grand merci pour la réponse.
Malheureusement j'ai besoin de l'inverse: définir la catégorie pour chaque article.

Je joins le fichier excel modifié : j'ai essayé RECHERCHEV(A2&"*";...;2;FAUX) en l'adaptant à mon cas mais cela ne fonctionne pas.
J'ai essayé : RECHERCHEV(G2;$A$2:$B$3&"*";2;FAUX) sans succès.


Merci,


Guillaume
 

sorofin

XLDnaute Nouveau
Re : RECHERCHEV plus élaborée: comment faire

Voici le classeur dont je parle dans le message ci-dessus.

Guillaume
 

Pièces jointes

  • Classeur1.xls
    18.5 KB · Affichages: 74
  • Classeur1.xls
    18.5 KB · Affichages: 78
  • Classeur1.xls
    18.5 KB · Affichages: 79

Monique

Nous a quitté
Repose en paix
Re : RECHERCHEV plus élaborée: comment faire

Bonjour,

à essayer :
=SI(G2="";"";INDEX(B$1:B$10;SOMMEPROD(ESTNUM(CHERCHE(A$2:A$10;G2))*(A$2:A$10<>"")*LIGNE(A$2:A$10))))

Ou bien celle-ci, à valider par ctrl, maj et entrée :
=SI(G2="";"";INDEX(B$1:B$10;MIN(SI(ESTNUM(CHERCHE(A$2:A$10;G2))*(A$2:A$10<>"");LIGNE(A$2:A$10)))))

Ou bien peut-être, à valider par ctrl, maj et entrée aussi :
=SI(G2="";"";INDEX(B$1:B$10;MIN(SI(ESTNUM(CHERCHE(A$2:A$10;G2));LIGNE(A$2:A$10)))))
 

Denis132

XLDnaute Impliqué
Re : RECHERCHEV plus élaborée: comment faire

Bonsoir Sorofin, Boisgontier,


Enlève seulement le faux dans ta formule car celui-ci demande la correspondance exacte. Par contre assure toi d'avoir ta liste triée.

@+

Denis

Oups collision, bonsoir Monique
 
Dernière édition:

sorofin

XLDnaute Nouveau
Re : RECHERCHEV plus élaborée: comment faire

Bonjour,

Ceci était la bonne réponse: il fallait retirer "faux".

Merci beaucoup.

Sujet résolu - clôturé



Bonsoir Sorofin, Boisgontier,


Enlève seulement le faux dans ta formule car celui-ci demande la correspondance exacte. Par contre assure toi d'avoir ta liste triée.

@+

Denis
 

JeanMarie

XLDnaute Barbatruc
Re : RECHERCHEV plus élaborée: comment faire

Bonsoir tout le monde

Bravo pour cette solution. Je ne connaissais la possibilité des fonctions de RECHERCHE et EQUIV à trouver un texte plus grand que les chaînes contenues dans la plage spécifiée. Nickel.

@+Jean-Marie
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…