Fréquence d'un mot dans une plage

jomortuary Messages postés 3 Statut Membre -  
jomortuary Messages postés 3 Statut Membre -
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

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. jomortuary Messages postés 3 Statut Membre
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  4. jomortuary Messages postés 3 Statut Membre
     
    merci pour ton support ;)
    0