Recherche de mots clés

Fermé
Polorskitoch - Modifié par Polorskitoch le 5/02/2014 à 10:19
 Polorskitoch - 6 févr. 2014 à 16:07
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

Vaucluse
Messages postés
26495
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2022
6 266
5 févr. 2014 à 10:34
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
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
5 févr. 2014 à 10:54
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
Merci beaucoup!

Je vais tester vos propositions.

Par contre je ne peux pas envoyer de fichier de travail, c'est du confidentiel :/
0
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
5 févr. 2014 à 11:11
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
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 :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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



Encore merci!!!!
0
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
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
5 févr. 2014 à 16:23
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
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
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
5 févr. 2014 à 17:27
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
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
Cadeau! http://cjoint.com/?3BfrPJ2425I

PS: je t'ai viré les accents
0
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
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
5 févr. 2014 à 22:35
ok.
Je te laisse finir avec lui alors, inutile de faire 2 trucs.

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

Cdt.
0