Recherche de mots clés

Polorskitoch -  
 Polorskitoch -
Bonjour,

J'ai une base de données dans laquelle il y a une colonne contenant des phrases. J'aimerais savoir s'il est possible de repérer un mot clé dans ces phrases et d'écrire dans la colonne d'après un mot résumant le propos.

Par exemple si la phrase contient le mot "virus", il faudrait que dans la colonne suivante le mot "biologique" apparaisse dans la ligne associée.

Je ne sais pas si je m'exprime clairement, n'hésitez pas à me demander des précisions.

Bien cordialement,

7 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    Une fonction
    =NB.SI(A1;"*Virus*");"Biologique";"") ferait l'affaire mais pour être concret, il faudrait savoir combien de référence vous comptez utiliser.
    Le plus simple étant d'empiler (raisonnablement) les items NB.SI, soit par ex:

    =SI(NB.SI(A1;"*Virus*";"_Biologique";"")&NB.SI(A1;"*réf2*);"_text2";"")&NB.SI(A1;"*Réf3");"_Text3;"").....

    qui vous ressortira à la suite les textes correspondants si plusieurs réf sont trouvés dans le même texte

    Si vous voulez ressortir les textes sur plusieurs lignes dans la cellule résultat (à formater avec retour à la ligne, remplacer le signe & entre les items par:
    &CAR(10)&

    Attention aux signes, surtout "* et*"

    crdlmnt
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Si beaucoup de mots-clés éventuellement on pourrait faire une fonction personnalisée en vba.

    Dans ce cas un fichier de travail serait le bienvenu.
    Déposer le fichier xls sur cjoint.com et coller ici le lien fourni.

    eric
    0
  3. Polorskitoch
     
    Merci beaucoup!

    Je vais tester vos propositions.

    Par contre je ne peux pas envoyer de fichier de travail, c'est du confidentiel :/
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ok, mais je manque d'imagination...
      Tu mets 1 dizaine de lignes bidons (qui ressemblent au réel) sur une feuille et une liste de 5 mots-clés dans une autre.

      eric
      0
  4. Polorskitoch
     
    Et oui il y aura un grand nombre de mots clés, surtout que la liste n'est pas fixe, on en rajoutera de temps en temps :/
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polorskitoch
     
    http://cjoint.com/?0BfmjSYpMrV

    Encore merci!!!!
    0
  7. Polorskitoch
     
    Je confirme pour la fonction personnalisée en VBA^^ Je me suis amusé à utiliser la formule que vous m'avez conseillée ( et qui fonctionne à merveille), mais j'ai déjà atteint la limite de taille de formule!

    Il faudrait que ça puisse marcher pour un nombre très élevé de mots clés.

    Pour info, le fichier .xls contient 5000 lignes
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Si je manque d'imagination, toi tu n'en manques pas ;-)
      Je verrais ça ce soir...

      1) 5000 lignes ça risque d'être un peu lent avec une fonction personnalisée. Ca sera sans doute plutôt une macro qui traitera toute la feuille. Rien contre ou tu veux absolument une fonction personnalisée ?

      2) Si plusieurs mots-clés que fait-on ?
      - on ne garde que le 1er ?
      - ou on les liste avec un séparateur ?

      eric
      0
    2. Polorskitoch
       
      Ahah, et encore j'ai enlevé les idée trop débiles^^

      Oui une macro serait plus intéressante :) Par contre il faudrait qu'elle ne traite que les colonnes concernées (dans le vrai fichier, il y a pas mal de colonnes)

      Là j'apprend le VBA sur le site du zero, ça avance pas mal :)

      Théoriquement il ne devrait pas y avoir deux mots clés... Par contre dans la colonne cause, il ne faut pas faire figurer le mot clé mais le mot associé à ce mot clé.

      Admettons que dans la phrase il y est le mot "coupure" il faudrait voir apparaître le mot "couteau dans la colonne des causes. :)

      Merci encore Eric!
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Par contre il faudrait qu'elle ne traite que les colonnes concernées
      Ah oui ? Ca serait bien de dire lesquelles s'il y en a plusieurs. C'était le but du fichier de travail...
      Si tu peux préciser ou refaire un fichier correspond à la réalité si tu ne veux pas avoir à reprendre toute la macro.

      Faut-il prévoir de tester sans les accents ? Ca ralentira d'autant plus...

      eric
      0
    4. Polorskitoch
       
      Le fichier original est en anglais donc il n'y a pas d'accent :) au pire vire les tous.

      Je te refais de suite un fichier
      0
    5. Polorskitoch
       
      Cadeau! http://cjoint.com/?3BfrPJ2425I

      PS: je t'ai viré les accents
      0
  8. foo
     
    Bonjour

    Je pense a un truc comme ca

    Sub Recherche()
    Application.ScreenUpdating = False
    Feuil1.Select
    For T = 2 To Feuil2.Range("A" & Rows.Count).End(xlUp).Row
    Cherche = Feuil2.Range("A" & T).Value
    For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
    Set VariableAdresse = Range("A" & L).Find(what:=Cherche)
    If Not VariableAdresse Is Nothing Then
    Range("B" & L).Value = Cherche
    Range("C" & L).Value = Feuil2.Range("B" & T).Value
    End If
    Next
    Set VariableAdresse = Nothing
    Next
    Application.ScreenUpdating = True
    Range("A1").Select
    End Sub

    A+

    Maurice
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      ok.
      Je te laisse finir avec lui alors, inutile de faire 2 trucs.

      A+
      eric
      0
    2. Polorskitoch
       
      Merci à vous deux :) Je vais essayer de comprendre de code. Je reviens vers vous dans peu de temps.

      Cdt.
      0