Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

Solid_Pliskin

XLDnaute Nouveau
Bonjour,

J'ai un tableau de valeurs assez simple (les valeurs sont soient "3", "1" ou "0") et j'aimerai connaître le nombre de la plus grande série de valeurs identiques et consécutives par ligne.

Par exemple:

0 | 1 | 1 | 1| 1| 1 | 3| 0| 1 | 0 | 3 | 1 | 1 | 0

Pour la plus grande série consécutive de "1", le nombre est 5.

1| 3 | 3 | 1 | 1 | 0 | 3 | 3 | 3 | 3 | 1 | 0

Pour la plus grande série consécutive de "3", le nombre est 4.

Etc.

Dans le fichier joint, vous trouverez de plus simples explications.

Merci :)
 

Pièces jointes

  • TestSolid.xlsx
    16.4 KB · Affichages: 214

Ludoboss

XLDnaute Nouveau
Re : Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

Merci mapomme,

je regarde ça un peu plus en détail dans le weekend, mais ça a l'air d'être parfait!!!
Comme quoi j'étais fixé sur une macro mais tout est possible en formule!!!
Il n'y a pas besoin de définir quelque part à quoi correspond Tablo?
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

(Re),

(...) Il n'y a pas besoin de définir quelque part à quoi correspond Tablo?

Tablo est le nom du tableau source des valeurs. Pour le définir ou modifier sa définition, choisir dans le ruban le menu: Formules / Gestionnaires de noms.

Vous pouvez aussi ne pas définir le nom, et, dans la formule, remplacer Tablo par $B$4:$AM$23 (bien inclure les $)
 
Dernière édition:

Ludoboss

XLDnaute Nouveau
Re : Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

Merci pour ces détails mapomme!
Dernière petite question, que peut on faire dans la formule pour que les cellules vides ne soient pas comptées et que par exemple dans une suite 3/3/3/""/""/""/3/3, la formule me donne 5 pour le nombre de 3 à la suite?

Merci beaucoup en tout cas, j'ai déjà pu vachement avancer!!
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

Bonsoir Ludoboss
(...) Dernière petite question, que peut on faire dans la formule pour que les cellules vides ne soient pas comptées et que par exemple dans une suite 3/3/3/""/""/""/3/3, la formule me donne 5 pour le nombre de 3 à la suite? (...)

Un essai avec la formule matricielle suivante dans AW8 (à tirer/copier jusqu'à AW10):
Code:
=MAX(FREQUENCE(SI(Tablo="";"";SI(Tablo=$AU8;COLONNE(Tablo)+(LIGNE(Tablo)-LIGNE($B$4))*COLONNES(Tablo)));SI(Tablo="";"";SI(Tablo<>$AU8;COLONNE(Tablo)+(LIGNE(Tablo)-LIGNE($B$4))*COLONNES(Tablo)))))
 

Pièces jointes

  • TestSolid sur tableau entier v2.xlsx
    14.1 KB · Affichages: 101
Dernière édition:

Ludoboss

XLDnaute Nouveau
Re : Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

Ca a l'air de marcher nickel!!
Je l'adapte à mon fichier mais ça devrait marcher. Si c'est pas le cas, je viendrais mettre les difficultés rencontrées.
Merci pour le temps que vous m'avez accordé Mister mapomme!!
 

JoceOne

XLDnaute Nouveau
Re : Distinguer le nombre de valeurs consécutives (série) dans un tableau de données

Bonjour,

je me permet de déterrer et apporter ma modeste contribution car la solution apportée dans ce topic m'a été ultra utile.
J'ai travaillé sur la solution de [post=999326]@ROGER2327[/post] pour avoir le nombre MINIMUM de valeurs consécutives différent de 0 :


Function compteMin(r As Range, s$, Optional tf As Boolean = True) As Long
Application.Volatile 'selon le besoin…
Dim tmp&, tmptmp&, oCel As Range


For Each oCel In r

If tmp <> 0 Then
tmptmp = tmp​
End If

tmp = (Not IsEmpty(oCel)) * (tmp + 1) * ((CStr(oCel.Value) = s) = tf)

If tmp = 0 And compteMin <> 0 Then
If tmptmp <= compteMin Then
compteMin = tmptmp​
End If
ElseIf tmp = 0 And compteMin = 0 Then
compteMin = tmptmp​
End If


Next
End Function

elle est peut-être simplifiable...
Merci encore!
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
187

Statistiques des forums

Discussions
312 502
Messages
2 089 022
Membres
104 006
dernier inscrit
CABROL