Chercher dans une cellule la présence d'un mot clef

74jiji Messages postés 2 Statut Membre -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai une cellule contenant un descriptif, et j'ai une liste de référence avec des mots clefs appartenant à des catégories. J'aimerais associé le descriptif à une catégorie

Donc en gros j'aimerais savoir si au moins un des mots clefs d'une catégorie est présent dans le descriptif et si oui alors j'associe mon descriptif au titre de cette catégorie.

expl:
en A1 le titre « Fruit » en A2 : pomme en A3 :poire en A4 :orange
en B1 le titre « Légume » en B2 :carotte en B3 :courgette en B4 :haricot

en C1 le descriptif « jean mange une pomme" je voudrais mettre en D1 le résultat qui est ici Fruit

J'espère que c'est assez clair
Merci pour votre aide

3 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Une possibilité (s'il 'y a pas beaucoup de critères)

    =SI(NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(C1;A2;"");A3;"");A4;""))<NBCAR(C1);A1;"") & SI(NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(C1;B2;"");B3;"");B4;""))<NBCAR(C1);B1;"")

    Sinon il faut passer par une macro en VBA

    Cdlmnt

    0
    1. 74jiji Messages postés 2 Statut Membre
       
      Dans mon cas j'ai 10 catégories de 50 mots clefs :-(
      j'avais pensé aussi à un SI et un RechercheV mais trop lourd...

      Je pensais que l'on aurait un type de fonction comme CHERCHE qui aurait pu être:

      CHERCHE-dans-liste(Tableau_de_valeur;Lieu_de_recherche;Resultat;Parametres) avec

      Tableau de valeur : une liste de mots clefs
      Lieu de recherche : une cellule ou un tableau
      Résultat : une valeur précise que l'on veut ou par défaut 1 si OK 0 si NOK
      Paramètres: 0 pour « contient au moins une valeur » et 1 pour « contient toutes les valeurs »

      Mais bon je crois que je vais devoir me la créer moi-même cette fonction

      Merci en tout cas
      0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    essayez ceci, mais je ne garantis pas la bonne compréhension du problème
    votre liste de référence de A1 à A50 (sans cellule vide)
    votre liste de texte à traiter de B1 à B1000
    de C1 à C1000, la formule à tirer:

    =SI(SOMMEPROD((NB.SI(C1;"*"&$A$1:$A$50&"*"))*1)>0;"présent";"vide")

    cette formule vous renvoie présent (ou fera autre chose selon besoins) si un des textes en A1:A50 est présent dans le texte en C

    Attention aux signes!!
    crdlmnt

    Errare humanum est, perseverare diabolicum
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    pourquoi ne pas mettre dans des colonnes qui pourraient être masquée 1 pour tester les fruits en F2 par exemple

    =SI(A2="";"";NB.SI($C$1;"*"&A2&"*")) et incrémenter vers le bas

    puis tester avec une conditionnelle si la colonne est supérieure = 1 résultat Fruit

    idem pour les Légumes etc ...

    ou on se limite à une colonne en espérant que dans la phrase il n'y ait pas un fruit et un légume avec cette formule imbriquée qu'il est possible d'allonger pour les fromages, les viandes etc ...

    =SI(A2="";"";SI(NB.SI($C$1;"*"&A2&"*")>0;$A$1;SI(B2="";"";SI(NB.SI($C$1;"*"&B2&"*")>0;$B$1;""))))

    ensuite il suffit de tester si le mot Fruit ou Légume est présent dans la colonne

    https://www.cjoint.com/?DBBotCuvLKD
    0