Comment utiliser RECHERCHEV() si l'expression n'est pas exacte ?

arnoweb

XLDnaute Nouveau
Bonjour à tous,

Je découvre ce forum qui est une véritable mine d'or.
Je n'ai d'ailleurs pas trop l'habitude d'utiliser Excel mais cette fois-ci j'en ai besoin pour gérer des catalogues de produits au format .csv

Je dois classer automatiquement des milliers de produits dans des catégories (ex: dans la catégorie 5 et 19, pour la catégorie "chemise" et la catégorie "chemise hugo boss)

Je dois donc me servir des colonnes MARQUE, NOM et de mon tableau de correspondance pour associé chaque produit à une catégorie (IDCAT)

Catalogue csv
excel1.jpg


Tableau de correspondance
excel2.jpg


Ce que j'aimerais faire c'est utiliser la fonction RECHERCHEV() mais en recherchant un mot situé dans une chaine de caractère (équivalent à ereg() en php)
Par exemple, une colonne contient le descriptif des produits, (exemple "chemise bleu en coton"). J'aimerais que la fonction RECHERCHEV() détecte le mot "chemise" dans le descriptif du produit afin de l'affecter à son numéro de catégorie (ex: chemise = 2)

J'ai essayé les expressions régulières:
ex: "*"&MOTCLE&"*"
Mais ça ne marche pas correctement

excel3.jpg


J'ai une 2ème question: une fois ce problème réglé (donc la ligne "chemise" associé à un id de catégorie) j'aimerais savoir s'il est possible d'ajouter un 2ème id de catégorie basé cette fois-ci sur la colonne marque ?
J'ai classé dans la catégorie chemise, très bien ! Mais comment l'associer également à la catégorie "Chemise Hugo Boss" par exemple ?

L'objectif étant d'avoir les 2 identifiants séparés par une virgule

excel4.jpg


Merci BEAUCOUP pour votre aide !!!!!

Bonne soirée à vous tous :)

Arnaud
 

Pièces jointes

  • exemple.xls
    87 KB · Affichages: 165
  • exemple.xls
    87 KB · Affichages: 174
  • exemple.xls
    87 KB · Affichages: 164
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Comment utiliser RECHERCHEV() si l'expression n'est pas exacte ?

Bonsoir et bienvenue,
A l'avenir, prends l'habitude de joindre un fichier exemple...!
Si j'ai compris, il s'agit d'une recherche de valeur mais à l'envers, ce qui impliquera une fonction matricielle dans tous les cas, car il faut vérifier qu'au moins un mot présent dans une matrice est contenu dans la phrase
Voir PJ avec une fonction perso
A+
kjin
 

Pièces jointes

  • arnoweb.xls
    19 KB · Affichages: 240

Tibo

XLDnaute Barbatruc
Re : Comment utiliser RECHERCHEV() si l'expression n'est pas exacte ?

Bonjour Arnoweb, salut kjin :),

Comme indiqué par kjin, on peut passer par une formule matricielle.

Ca donne ceci en B2 (sur la base du fichier joint par kjin) :

Code:
=SI(SOMME(ESTNUM(CHERCHE($T$2:$T$4;A2))*1)=0;"Erreur";INDEX($U$2:$U$4;EQUIV(VRAI;ESTNUM(CHERCHE($T$2:$T$4;A2));0)))

Formule matricielle à valider par CTRL + MAJ + ENTREE

Si souci adaptation, reviens avec un fichier exemple XLS

@+
 

arnoweb

XLDnaute Nouveau
Re : Comment utiliser RECHERCHEV() si l'expression n'est pas exacte ?

Merci beaucoup pour vos réponses !

J'ai essayé ces formules mais je dois avouer que ce serait plus clair pour moi avec la formule directement intégrée dans le fichier excel.

Je viens de mettre en pièce jointe un exemple de fichier.

Merci beaucoup pour votre aide.
 

Pièces jointes

  • exemple.xls
    87 KB · Affichages: 115
  • exemple.xls
    87 KB · Affichages: 121
  • exemple.xls
    87 KB · Affichages: 120
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Comment utiliser RECHERCHEV() si l'expression n'est pas exacte ?

Bonsjour, salut Tibo :),
Dans le fichier que je t'ai fourni, regardes la plage nommée T_IDCAT
Note que si plusieurs mots existent dans une chaîne, seul le premier est pris en compte
Ex : cravates à boutons --> si cravate et bouton esistent dans la liste, seul le code de cravate sera renvoyé
A+
kjin
 

arnoweb

XLDnaute Nouveau
Re : Comment utiliser RECHERCHEV() si l'expression n'est pas exacte ?

Merci beaucoup, j'ai enfin réussi à mettre en place la matrice que vous m'avez expliqué :)

En revanche je n'arrive pas à trouver une solution pour ajouter le 2ème identifiant (pour la marque) dans ma colonne idcat.

Je m'explique: il existe des sous catégories de produits, par exemple:

chemise
- calvin klein
- delaveine
- celio
- hugo boss

cravate
- calvin klein
- delaveine
- celio
- hugo boss

pantalon
- calvin klein
- delaveine
- celio
- hugo boss

Il existe donc des catégories différente pour chaque marque...

Je ne sais pas comment paramétrer Excel pour qu'il affecte ce 2ème identifiant (ex: les 2 catégories séparées comme ça: 3,15)

J'ai mis en pièce jointe le fichier avec le tableau des correspondances.

Félicitations à celui qui arrivera à m'aider car j'imagine que c'est complexe !!!

Et encore merci pour votre aide.
 

Pièces jointes

  • question_arno.xls
    57.5 KB · Affichages: 156
  • question_arno.xls
    57.5 KB · Affichages: 167
  • question_arno.xls
    57.5 KB · Affichages: 157

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry