Trouver les termes communs dans les cellules d'une colonne
leouf
-
leouf -
leouf -
Bonjour à tous,
ça va faire une journée que je cherche sur le net sans trouver de solution.
Je veux trouver tous les mots qui se répètent dans les cellules d'une colonne. sachant que chaque cellule, de cette colonne, contient une phrase.
Exemple :
!! les sens des phrases dans l'exemple ne veut rien dire :) !!
Cellule 1 : Toto est sorti jouer
Cellule 2 : Koko et toto sont amis
Cellule 3 : les kokos sont plus bénéfiques que les dodos
Cellule 4 : Toto et lesdodo (lesdods : attaché exprès)
Dans l'exemple, la solution donnerait : toto, koko, dodo
j'ai une liste de plusieurs centaines de lignes à traiter.
je suis ouvert à toutes les solutions.
Merci d'avance pour vos efforts.
ça va faire une journée que je cherche sur le net sans trouver de solution.
Je veux trouver tous les mots qui se répètent dans les cellules d'une colonne. sachant que chaque cellule, de cette colonne, contient une phrase.
Exemple :
!! les sens des phrases dans l'exemple ne veut rien dire :) !!
Cellule 1 : Toto est sorti jouer
Cellule 2 : Koko et toto sont amis
Cellule 3 : les kokos sont plus bénéfiques que les dodos
Cellule 4 : Toto et lesdodo (lesdods : attaché exprès)
Dans l'exemple, la solution donnerait : toto, koko, dodo
j'ai une liste de plusieurs centaines de lignes à traiter.
je suis ouvert à toutes les solutions.
Merci d'avance pour vos efforts.
A voir également:
- Trouver les termes communs dans les cellules d'une colonne
- Déplacer une colonne excel - Guide
- Trouver adresse mac - Guide
- Trier une colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
1 réponse
Bonsoir
Une possibilité par macro (à adapter à ton fichier)
En supposant la liste des phrases en colonne A sur cent lignes, on retourne la liste des communs en colonne C :
Macro à mettre dans un module (ALT F11 pour ouvrir l'éditeur puis Insertion et Module) et à lancer après depuis la feuille à partir de l'onglet Developpeurs et Macros
Cdlmnt
Une possibilité par macro (à adapter à ton fichier)
En supposant la liste des phrases en colonne A sur cent lignes, on retourne la liste des communs en colonne C :
Sub communs()
'boucle sur les lignes 1 à 100
For n = 1 To 100 'A ADAPTER
' decompose la chaine de la cellule A de la ligne
a = Split(Range("A" & n), " ")
' pour chaque mot de la chaine
For Each c In a
' chaine v composé du mot en majuscule entouré d'*
v = "*" & UCase(c) & "*"
'boucle sur les lignes suivant celle en cours
For t = n + 1 To 100 'A ADAPTER
' vérifie si la chaine v existe dans la chaine de la cellule
If UCase(Range("A" & t).Value) Like v Then
' si oui on incrémente la variable de ligne de 1
x = x + 1
' et on inscrit le mot commun en colonne C
Range("C" & x) = c
End If
Next t
Next c
Next n
' une fois la liste des mots communs établi en colonne C :
Dim Ligne As Long
' derniere ligne non vide de la colonne C
Ligne = Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row
' suppression des doublons en colonne C
ActiveSheet.Range("$C$1:$C$" & Ligne).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Macro à mettre dans un module (ALT F11 pour ouvrir l'éditeur puis Insertion et Module) et à lancer après depuis la feuille à partir de l'onglet Developpeurs et Macros
Cdlmnt
C'est pourquoi notre brillant ami via55 a été obligé de créer une macro spécifique, en utilisant le langage VBA, pour essayer de trouver une solution à ton problème.
Merci pour l'intérêt que vous avez porté à mon problème.
@Raymond : C'est vrai, il faut avoir une base en VBA, je ne suis pas un pro mais je m'en sors un peu.
@via55 : Merci beaucoup pour ta macro, c'est un bon départ pour ce que je veux faire. ton idée de spliter la phrase est ingénieuse, je m'en suis inspiré pour utiliser la fonction d'excel qui permet de diviser un texte en colonnes, à partir de là je pense pouvoir faire quelque chose.
pour vous donner une idée plus précise sur ma situation :
Il s'agit de trouver la meilleure façon de codifier les noms de fournisseurs (phrase en colonnes), de tel façon à ce qu'il sera facile de les repérer lors d'une saisie, en introduisant dans un champ, un ID de 10 caractère, ce dernier ne doit pas contenir de nom générique (qui se répète souvent dans d'autres noms de fournisseurs, comme : Electrique, Entreprises, acier, transport, services, ....) pour réduire le temps de recherche.
donc je me suis dit qu'en supprimant les noms génériques des phrases, je vais pouvoir garder des noms spécifiques que je pourrais ensuite codifier en 10 caractères facilement en les standardisant.
je vais continuer à travailler dessus sur la base de vos conseils. si toutefois vous avez de meilleures idées je suis toujours preneur.
Merci et bon samedi à vous.