Liste de A, B, C: faire apparaitre la lettre la plus mentionnée

Bonjour,
Imaginez que vous ayez une liste d'information contenant des A, B et C, par exemple.

L'objectif à partir de cette liste de A, B,C, est d'identifier la lettre parmi A, B, C qui est en plus grand nombre.

Si A est en plus grand nombre, alors un A apparaitra comme résultat dans la cellule .

Si B est en plus grand nombre, alors un B apparaitra comme résultat dans la cellule .

Idem pour C

Si quelqu'un peut m'aider à trouver solution je l'en remercie.

Geoffroy

Bonjour

Peut on voir ton fichier c'est plus facile

Crdlt

Bonjour,

Merci de votre attention. Voici donc une liste qui présente la situation.

Bonjour à tous,

En effet, avec cet exemple, ce n'est pas évident de bien comprendre...

J'ai l'intuition que c'est ça que vous cherchez :

=INDEX(Mots;EQUIV(MAX(NB.SI(Occ;"*"&Mots&"*"));NB.SI(Occ;"*"&Mots&"*");0))

en matriciel.

Cdlt,

Bonjour 3GB, merci pour votre réponse.

Existe-il une manière plus simple ?

Je n'ai jamais fait de matriciel.

Bonjour à toutes et tous,

Une proposition moins élaborée que l'ami 3GB, que je salut

4lvbeethoven.xlsx (9.33 Ko)

Formule matricielle à valider avec les touches "Ctrl + Maj + Entrée" avec les 3 doigts.

Peut-être est-ce suffisant ?

Cdlt

Bonjour mdo100,

Merci de vous êtres penché sur ma situation. A regarder la formule, elle semble complexe pour moi. :D

Je pense que ça va convenir. Je vais essayer et revenir confirmer.

Je suis nouveau, ça fait 1 semaine que je suis sur Excel.

Re lvbeethoven,

Si tu préfères en nommant les cellules, cela pourrait t'aider.

Résultat en "C36"

Pour avoir les accolades { } de chaque côté de la formule il faut la valider avec les 3 les touches "Ctrl + Maj + Entrée" en même temps.

Il n'y a pas d'autre moyen que cela.

Cdlt

Salut mdo100 !

@lvbeethoven : Si ça ne marche pas sur votre vrai fichier, revenez avec un fichier exemple représentatif qu'on puisse comprendre. Nos solutions pour l'instant comptent le nombre d'existence et non le nombre de lettres dans chaque chaine... Elles sont peut-être insuffisantes.

Si vous voulez, il y a des solutions avec des fonctions personnalisées plus simples à l'utilisation.

Re 3GB,

Aie, Fonction personnalisé et "Je suis nouveau, ça fait 1 semaine que je suis sur Excel. " je sais pas si ça va matcher

C'est vrai qu'avec un fichier représentatif du problème, ça aiderait.

Oui, je sais mais une fonction personnalisée est plus simple à l'utilisation qu'une "super" formule matricielle (qu'il faut toujours bien valider sinon CA MARCHE PU ).

On limite les arguments, on a une simple fonction (finalement comme les natives d'excel). C'est juste qu'il faut aller faire un tour du côté développeur mais ça peut être un premier contact avec VBA...

Voici quand même un essai avec l'idée et cette fonction personnalisée (non fonctionnelle sur mac) qui renvoie le(s) texte(s) le(s) plus fréquent(s) :

Function TOPSTRING$(Plage As Range, Liste)

Dim temp(), tresult()
Set reg = CreateObject("vbscript.regexp")
motif = Application.Transpose(Liste.Value)
ReDim temp(UBound(motif))

With reg
    .Global = True
    .ignorecase = True
    For i = LBound(motif) To UBound(motif)
        .Pattern = motif(i)
        For j = 1 To Plage.Rows.Count
            For k = 1 To Plage.Columns.Count
                If .test(Plage(j, k).Value) Then temp(i) = temp(i) + .Execute(Plage(j, k).Value).Count
            Next k
        Next j
    Next i
End With

For i = LBound(temp) To UBound(temp)
    If temp(i) = Application.Max(temp) Then
        ReDim Preserve tresult(n)
        tresult(n) = motif(i)
        n = n + 1
    End If
Next i

TOPSTRING = Join(tresult, " - ")

End Function

A utiliser sur feuille ainsi :

=TOPSTRING(PLAGEASONDER;LISTEMOTS)

Où LISTEMOTS est pour l'instant une colonne mais il est possible de peaufiner.

Merci pour toutes ces précisions. Je pense que la situation est trop complexe à mon niveau.

J'ai cependant trouvé des solutions alternatives.

Référencement par nb.si et classement par rang. Du coup ça me dit si de A, B ou C l'un des 3 est en 1ere position étant donné sa présence en plus grande quantité.

C'est une solution, même si c'est pas tous à fait ce que je voulais faire.

Voilà le fichier en question.

L'idée est d'établir par exemple, parmi la liste dite "concerne" quel élément de type texte (puisqu'il n'y a que du texte) est le plus mentionné.

Le tout sur une seule cellule.

Alors là, il y a beaucoup plus simple (surtout si vous restez sur des codes postaux d'IDF) car il s'agit de valeurs numériques à tester :

=MODE(G:G)

Et le grand gagnant est le 75014 .

Par contre, il faut absolument changer la structure de votre fichier : défusionner toutes les cellules, garder une colonne par champ, supprimer celles devenues vides du fait de la défusion et enfin mettre le tout sous forme de tableau structuré. Tout sera beaucoup plus simple !

Cdlt,

Bonjour à tous

Il faudrait aussi compléter ton profil en indiquant ta version car le solutions ne sont pas les mêmes, même en formules

D'accord,

Annoncer le chiffre le plus présent dans une liste de nombre ne semble pas poser de pb, quand est-il pour du texte ?

Pour du texte, il faut prendre une des 2 premières formules proposées par mdo100 ou moi-même. Et s'il s'agit de compter le nombre de fois où le texte est contenu, il faut prendre ma première formule.

Et s'il faut compter le nombre de fois où le texte apparait (le nombre d'occurrences) sachant qu'il peut apparaitre plusieurs fois dans une même cellule, il faut prendre la fonction personnalisée.

Cdlt,

Merci 3GB,

Je vais partir sur ça , dans l'espoir que j'y arrive

Bonne soirée !

Avant toute chose, suivez mon conseil (défusion, suppression colonnes vides, tableau structuré) et ce sera déjà beaucoup plus simple .

Merci, bonne soirée à vous aussi !

Rechercher des sujets similaires à "liste apparaitre lettre mentionnee"