renvoyer dans une variable le nombre de caractère le plus fréquent d'une colonne

  • Initiateur de la discussion Initiateur de la discussion Alyrio
  • 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 !

Alyrio

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord je vous remercie d'avance de porter attention à ma demande et merci pour votre aide.
Un classeur est envoyé en pièce jointe pour exemple.


J'ai une colonne qui contient des n° de serie de longueurs diverses.
Je cherche à identifier ceux qui ne respecte pas la longueur la plus fréquente.

Pour cela il me faut d'abord identifier la longueur qui se répète le plus.
J'utilise donc 2 fonctions pour se faire NBCAR qui renvoi le nombre de caractère d'une expression et
MODE qui renvoi le nombre le plus fréquent contenu dans une liste de nombre.

Cependant j'aimerais avoir une formule du type "=MODE(NBCAR(A1:A28))" qui me renverrait d'un coup
le nombre le plus fréquent correspondant à la longueur de n° série la plus fréquente.

Formule que je pourrais utiliser par la suite en vba dans une variable.

Je vous invite a jeter un coup d'oeil dans le fichier en piece jointe pour plus de clarté. Merci.
 

Pièces jointes

Re : renvoyer dans une variable le nombre de caractère le plus fréquent d'une colonne

Bonjour,

Ta formule est bonne, simplement une petite faute d'inattention concernant la plage :
Code:
=MODE(NBCAR(A2:A14))
et pas besoin de valider en matricielle.
 
Re : renvoyer dans une variable le nombre de caractère le plus fréquent d'une colonne

Bonjour à tous,

Essayes avec la formule matricielle suivante:
Code:
=MODE(INDEX(NBCAR(A2:A14);;))
en tenant compte que les cellules de la plage A2:A14 ne doivent pas être vides...

Valider les formules matricielles par : CTRL+MAJ+ENTREE

Cordialement
 
Re : renvoyer dans une variable le nombre de caractère le plus fréquent d'une colonne

Bonjour Alyrio, hbenalia, Bonjour hoerwind 🙂,
Une proposition sans formule:
VB:
Private Sub CommandButton1_Click()
Dim C As Object, I&, X&, Tmp&
Set C = CreateObject("Scripting.Dictionary")
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    C(Len(Cells(I, 1))) = C(Len(Cells(I, 1))) + 1
    If X < C(Len(Cells(I, 1))) Then X = Len(Cells(I, 1))
Next I
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Len(Cells(I, 1)) <> X Then Tmp = Tmp + 1
    If Len(Cells(I, 1)) <> X Then Cells(I, 1).Interior.ColorIndex = 35 'Pour voir
Next I
Cells(3, 4) = X
Cells(4, 4).Value = Tmp
End Sub
Cordialement
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Retour