Test sur texte

ted_etbill

XLDnaute Nouveau
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
 

Tibo

XLDnaute Barbatruc
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() ...

@+
 

david84

XLDnaute Barbatruc
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:

Guiv

XLDnaute Occasionnel
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
 

Discussions similaires