• Initiateur de la discussion Initiateur de la discussion ted_etbill
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

ted_etbill

Guest
Bonsoir a tous

J'aimerai savoir s'il est possible de trouver dans une liste de texte celui qui reviens le plus souvent.

ex:
pomme
pomme
poire
pomme
cerise
pomme
pomme
fraise
poire


Le texte qui reviens le plus est "pomme"
(bien sur je précise que la liste change, je ne peux pas faire de comparaison de caractère, demain je peux très bien avoir une liste de légumes ....)

Merci
 
Re : Test sur texte

Bonjour ted, salut Jean-Claude,

Une solution avec colonne intermédiaire :

Tes données en colonne A

En B1 :

Code:
=NB.SI($A$1:$A$9;A1)

à recopier vers le bas

en C1 :

Code:
=INDEX(A1:A9;EQUIV(MODE(B1:B9);B1:B9;0))

Je te laisse tester

On devrait certainement y parvenir sans colonne intermédiaire, mais pas trouvé. Peut-être avec FREQUENCE() ...

@+
 
Re : Test sur texte

Bonsoir à tous,
également :
=INDEX(A1:A9;EQUIV(GRANDE.VALEUR(NB.SI(A1:A9;A1:A9);1);NB.SI(A1:A9;A1:A9);0))
Formule matricielle
A+
Edit : également =INDEX($A$1:$A$9;PETITE.VALEUR(EQUIV($A$1:$A$9;$A$1:$A$9;0);1))
 
Dernière édition:
Re : Test sur texte

Bonsoir à tous,
Une solution par macro, puisqu'elle est faite...

EDIT: je l'enlève, ça ne marche pas comme il faut 😱
Mais je cherche...! 😡

Cordialement,
Guiv
 
Dernière édition:
Re : Test sur texte

Re,
Bon, celle-là a l'air de fonctionner (résultat en bas de la colonne de données, "A" par hypothèse)
Code:
Sub CompteOccurences ()
Dim Derl As Long, l As Long, MaPlage As Range, cel As Range, n As Integer
Derl = Range("A65536").End(xlUp).Row
Set MaPlage = Range("A1:A" & Derl)

Range("B" & Derl + 1) = Application.CountIf(MaPlage, Range("A1"))

For l = 2 To Derl
n = Application.CountIf(MaPlage, Range("A" & l))

If n > Range("B" & Derl + 1) Then
Range("A" & Derl + 1) = Range("A" & l)
Range("B" & Derl + 1) = n
End If

Next l
End Sub

Bonne journée,
Guiv
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
1 K
Réponses
4
Affichages
586
Retour