Compter le nb de valeurs consécutives

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

njars

XLDnaute Nouveau
Bonjour,

voici mon problème, je ne sais pas quelle formule utiliser pour compter combien il y a de "C" consécutifs.
par exemple sur la plage A1:J1
CCCBCCCCBDD

Merci de me venir en aide.
njars
 
Re : Compter le nb de valeurs consécutives

bonjour Njars,

colles ce code dans un module VBA
Function CL(Lt As String, C As Range) As Integer
Application.Volatile
Dim l As Integer, i, j, total As Integer, index, result
total = 0
index = 0
l = Len(C.Value)
For i = 1 To l
If Mid(C, i, 1) = Lt Then
total = total + 1
Else
If total > result Then result = total
total = 0
End If
Next i
CL = result
End Function

et dans une cellule à droite (ou ailleurs) de ta cellule contenant ton texte, tu mets :
=CL("C";LaCelluleQuiContientMonTexte)
 

Pièces jointes

Dernière édition:
Re : Compter le nb de valeurs consécutives

Merci pour cette réponse rapide, je vais l'essayer tout de suite.

Seulement, je ne pensais pas à une solution VBA mais plutôt à une formule (peut être avec Sommeprod?)

merci
njars
 
Re : Compter le nb de valeurs consécutives

Mutzik,

je viens de regarder ton fichier :
en fait, dans mon exemple, il y a une lettre par cellulle sur la plage A1:J1 et il s'agit de compter le nb de "C" inscrit consécutivement.

ton fichier ne semble pas fonctionner si la dernière lettre de la cellule est un C!

merci quand même.
njars
 
Re : Compter le nb de valeurs consécutives

Bonjour njars, mutzik, le forum,

njars, dans ton exemple le mot "consécutif" me gêne. Il y a 3 "C" puis une autre lettre, puis 4 "C" et encore des lettres ...

Veux-tu trouver le total 7 ou bien la plus grande série (dans ce cas 4)

Pour le total, la formule est :

=NB.SI(A1:I1;"C")

Amicalement
Feutrine
 
Re : Compter le nb de valeurs consécutives

Bonjour Njars, Feutrine, mutzik,

Un essai avec une formule un peu compliquée mais qui a l'air de marcher:

=SOMME(ESTNUM(CHERCHE(REPT(L5;LIGNE(INDIRECT("1:"&NB.SI(A5:K5;L5))));A5&B5&C5&D5&E5&F5&G5&H5&I5&J5&K5;1))*1)

Formule matricielle à saisir avec ctrl-Maj-entrée

Explications:
La lettre à rechercher en L5

NB.SI(A5:K5;L5) est le nombre de fois où la lettre est trouvée (ici 8)

LIGNE(INDIRECT("1:"&NB.SI(A5:K5;L5))) va créer une matrice de 1 à x, x étant le nombre précédent.

REPT(L5... va créer des combinaisons de 1, 2, 3,...8 fois la lettre choisie

Cherche va chercher chaque combinaison dans la chaîne

estnum(...)*1 va génerer une matrice de 1 si la combinaison est trouvée ou 0 sinon.

et la somme des 1 va donner le nombre max de lettre consécutives.

Exemple dans le fichier joint.

@+

Gael
 

Pièces jointes

Re : Compter le nb de valeurs consécutives

Bonjour Njars, Feutrine, mutzik,Gae

Mutzik, comment modifier ta function pour avoir un résultat identique mais en comptant des "CA" consécutifs et non des "C" ?.

Merci à vous pour vos réponses,

Bien amicalement,

Christian.
 
Re : Compter le nb de valeurs consécutives

Bonjour Jean-Marie, bonjour à tous,

Super ta formule Jean-Marie.
J'ai un peu simplifié la mienne en supprimant le NB.SI que j'ai remplacé par le nombre total de cellules mais elle sera toujours plus lourde du fait de la création d'une chaîne de caractères à partir des cellules. En utilisant les macros complémentaires Morefun, on peut simplifier un peu avec un MCONCAT mais ça reste moins astucieux.

Ci-joint un exemple avec les 2 formules.

Christian, les formules fonctionnent de la même façon pour une lettre ou une chaîne de caractères, tu peux donc rechercher "CA" au lieu de "C".

@+

Gael
 

Pièces jointes

- 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