Comment compter répétition ?
seyf63
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
rEVOLV3r Messages postés 223 Date d'inscription Statut Membre Dernière intervention -
rEVOLV3r Messages postés 223 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche une formule pour trouver les mots les plus répété dans une colonne avec des ensemble de mots.
J'ai fait beaucoup de recherche mais je n'ai trouve aue des formules qui ne correspondais pas a ce aue je voulais et idem pour les macro.
Voila un exemple du document excel que j'ai :

Et un exemple de ce que je voudrais serait :
Atem 5
audio 3
encoder 1
Avoir le mots les plus répétés dans une plage de cellule contenant des phrases.
Merci de votre aide en avance.
Je cherche une formule pour trouver les mots les plus répété dans une colonne avec des ensemble de mots.
J'ai fait beaucoup de recherche mais je n'ai trouve aue des formules qui ne correspondais pas a ce aue je voulais et idem pour les macro.
Voila un exemple du document excel que j'ai :
Et un exemple de ce que je voudrais serait :
Atem 5
audio 3
encoder 1
Avoir le mots les plus répétés dans une plage de cellule contenant des phrases.
Merci de votre aide en avance.
A voir également:
- Comment compter répétition ?
- Comment savoir qui regarde mon compte facebook - Guide
- Comment créer un compte gmail - Guide
- Comment créer un compte google - Guide
- Comment supprimer un compte gmail - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour,
Voici la macro :
La feuille DATA est la feuille contenant vos cellules avec du texte
La feuille RESULTATS aura le tableau final de comptabilisation des mots
J'utilise la fonction usedrange pour chercher toutes les cellules qui ne sont pas vide dans la feuille DATA, à adapter selon votre besoin si vous voulez la recherche dans une seule colonne ou plage de données.
___________________
Public Sub Comptage_mots()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim sh As Worksheet
Set sh = wb.Sheets("DATA")
Dim sh_results As Worksheet
Set sh_results = wb.Sheets("RESULTATS")
Dim v_results() As Variant
For Each c In sh.UsedRange.Cells
vtemp = Split(c.Value, " ", -1, vbTextCompare)
For i = 0 To UBound(vtemp)
If (Not v_results) = -1 Then
ReDim v_results(0 To 1, 0 To 0)
v_results(0, 0) = vtemp(0)
v_results(1, 0) = 1
Else
b = False
For j = 0 To UBound(v_results, 2)
If v_results(0, j) = vtemp(i) Then
v_results(1, j) = v_results(1, j) + 1
b = True
Exit For
End If
Next j
If b = False Then
ReDim Preserve v_results(0 To 1, 0 To UBound(v_results, 2) + 1)
v_results(0, UBound(v_results, 2)) = vtemp(i)
v_results(1, UBound(v_results, 2)) = 1
End If
End If
Next i
Next c
For i = 0 To UBound(v_results, 2)
sh_results.Range("A1").Offset(i, 0).Value = v_results(0, i)
sh_results.Range("A1").Offset(i, 1).Value = v_results(1, i)
Next i
End Sub
________________
Meilleures salutations.
Voici la macro :
La feuille DATA est la feuille contenant vos cellules avec du texte
La feuille RESULTATS aura le tableau final de comptabilisation des mots
J'utilise la fonction usedrange pour chercher toutes les cellules qui ne sont pas vide dans la feuille DATA, à adapter selon votre besoin si vous voulez la recherche dans une seule colonne ou plage de données.
___________________
Public Sub Comptage_mots()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim sh As Worksheet
Set sh = wb.Sheets("DATA")
Dim sh_results As Worksheet
Set sh_results = wb.Sheets("RESULTATS")
Dim v_results() As Variant
For Each c In sh.UsedRange.Cells
vtemp = Split(c.Value, " ", -1, vbTextCompare)
For i = 0 To UBound(vtemp)
If (Not v_results) = -1 Then
ReDim v_results(0 To 1, 0 To 0)
v_results(0, 0) = vtemp(0)
v_results(1, 0) = 1
Else
b = False
For j = 0 To UBound(v_results, 2)
If v_results(0, j) = vtemp(i) Then
v_results(1, j) = v_results(1, j) + 1
b = True
Exit For
End If
Next j
If b = False Then
ReDim Preserve v_results(0 To 1, 0 To UBound(v_results, 2) + 1)
v_results(0, UBound(v_results, 2)) = vtemp(i)
v_results(1, UBound(v_results, 2)) = 1
End If
End If
Next i
Next c
For i = 0 To UBound(v_results, 2)
sh_results.Range("A1").Offset(i, 0).Value = v_results(0, i)
sh_results.Range("A1").Offset(i, 1).Value = v_results(1, i)
Next i
End Sub
________________
Meilleures salutations.