Fréquence d'un mot dans une plage

Fermé
jomortuary Messages postés 3 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 28 mai 2013 - 28 mai 2013 à 08:57
jomortuary Messages postés 3 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 28 mai 2013 - 28 mai 2013 à 16:53
Bonjour,

Je vous soumets mon problème je souhaite trouver le code le plus récurrent dans une plage de cellule, cela est ok j'ai trouvé une fonction et elle fonctionne correctement la voici :

Function MotFreq(Rng As Range) As String
Dim Mx As Integer
Dim c As Range
Dim Str As String

For Each c In Rng
If Application.CountIf(Rng, c.Value) > Mx Then
Mx = Application.CountIf(Rng, c.Value)
Str = c.Value
End If
Next c
MotFreq = Str
End Function

Maintenant je souhaiterai le même type de fonction sauf que j'aimerais exclure un code

En gros qu'il me compte le second code le plus récurrent

Merci d'avance pour votre aide

Joffrey

4 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 28/05/2013 à 11:31
Bonjour

Si j'ai compris le problème
renvoie la fréquence de la kième plus grande valeur de la plage

Public Function MotFreq(plage As Range, k As Long)
Dim n As Long, eff As Long, m As Long
n = plage.Cells.Count
m = Application.WorksheetFunction.Large(plage, k)
eff = Application.WorksheetFunction.CountIf(plage, m)
MotFreq = eff / n
End Function

RQ. =NB.SI($A$1:$A$20;GRANDE.VALEUR($A$1:$A$20;2))/NB($A$1:$A$20)
renvoie la fréquence de la 2° plus grande valeur de la plage A1:A20

bonne suite
0
jomortuary Messages postés 3 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 28 mai 2013
28 mai 2013 à 12:29
Merci ccm81 pour ta réponse mais j'ai oublié de préciser que les codes étaient de type texte

par exemple :
A B C D E F
1 EG EG EG X X A1
2
3

Dans la plage A1:F1 la liste de code ci dessus

J'ai une premiere fonction qui me donne le code le plus récurrent ici "EG" et je cherche une seconde fonction qui me donne le code le plus récurrent en excluanrt le code trouvé précedement donc "EG"

Merci d'avance
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
28 mai 2013 à 16:29
Un essai
https://www.cjoint.com/?3ECqz7bSpHL

RQ. si plusieurs "codes" ont le même nombre d'occurrences ils seront considérés de classement différents

Bonne suite
0
jomortuary Messages postés 3 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 28 mai 2013
28 mai 2013 à 16:53
merci pour ton support ;)
0