Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Occurence texte la plus fréquente dans une plage de cellules

Pat

XLDnaute Nouveau
Bonjour,
J'ai une plage de cellules avec des noms (texte). Je voudrais connaître par une formule:
- cellule 1: quel est le nom dont la fréquence est maximale, minimale, etc...
- cellule 2: renvoyer le nombre d'occurences correspondant à chacun des noms déterminés ci-dessus.
Je crois qu'il existe des formules comme MODE ou grande.valeur mais cela ne marche pas avec le texte.
Merci d'avance.
Date Présent1 Présent2 Présent3 Présent4 Présent5 Présent6
06/10/11 Petra Lukas Misa Rosti Barbora
13/10/11 Petra Lukas Rosti Masa Barbora Tomas
 

job75

XLDnaute Barbatruc
Re : Occurence texte la plus fréquente dans une plage de cellules

Bonjour Pat, bienvenue sur XLD,

Nommez Plage la plage (une colonne) concernée et voyez déjà ça :

- nom dont la fréquence est maximale :

Code:
=INDEX(Plage;EQUIV(MAX(NB.SI(Plage;Plage));NB.SI(Plage;Plage);0))
- nom dont la fréquence est minimale :

Code:
=INDEX(Plage;EQUIV(MIN(NB.SI(Plage;Plage));NB.SI(Plage;Plage);0))
Edit : salut Jacques

A+
 

job75

XLDnaute Barbatruc
Re : Occurence texte la plus fréquente dans une plage de cellules

Re, salut David

Oublié de préciser que les formules précédentes sont matricielles (validation par Ctrl+Maj+Entrée).

Maintenant pour les nombres d'occurences, toujours en matriciel :

Code:
MAX(NB.SI(Plage;Plage))

MIN(NB.SI(Plage;Plage))
Edit : j'avais été chercher midi à quatorze heures...

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Occurence texte la plus fréquente dans une plage de cellules

Re, salut David

Aucune comparaison entre mes formules et les travaux superbes de JB et David.

D'autant que celles de mon post #3 s'appliquent uniquement à un vecteur ligne ou colonne.

Voici quand même une autre solution utilisant cette fonction VBA (Alt+F11) :

Code:
Function NOMFREQUENCE$(plage As Range, frequence&, ordre&)
Dim d As Object, ref, n&
Set d = CreateObject("Scripting.Dictionary")
For Each ref In plage
  If ref <> "" Then d(ref.Value) = ref.Value
Next
For Each ref In d.keys
  If Application.CountIf(plage, ref) = frequence Then
    n = n + 1
    If n = ordre Then NOMFREQUENCE = ref: Exit Function
  End If
Next
End Function
Formule en E10 à tirer à droite et vers le bas :

Code:
=NOMFREQUENCE(Plage;$E7;COLONNES($E10:E10))
Fichier joint.

A+
 

Pièces jointes

  • Fréquences(1).xls
    36.5 KB · Affichages: 190

david84

XLDnaute Barbatruc
Re : Occurence texte la plus fréquente dans une plage de cellules

Re
toujours en formules, en s'inspirant de la formule et de l'exemple fournis par Jacques :
se placer en B2, valider avec Ctrl, Maj et entrée et tirer la formule vers le bas :
Code:
=INDEX(champ;MODE(SI((champ<>"")*(NB.SI(B$1:B1;champ)=0);EQUIV(champ;champ;0))))
A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…