Recherche de mots clés

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. Contributeur
      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
      1. Merci beaucoup!

        Je vais tester vos propositions.

        Par contre je ne peux pas envoyer de fichier de travail, c'est du confidentiel :/
        1. Contributeur
          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
      2. 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. 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
          1. Contributeur
            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
          2. 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!
          3. Contributeur
            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
          4. 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
          5. Cadeau! http://cjoint.com/?3BfrPJ2425I

            PS: je t'ai viré les accents
        2. 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
          1. Contributeur
            ok.
            Je te laisse finir avec lui alors, inutile de faire 2 trucs.

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

            Cdt.

        Discussions similaires

        question pix mot caché

        7 réponses