Longueur maximale d'une séquence de nombres

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

W

whiskyfizz

Guest
Bonsoir tout le monde !

J'ai encore passé des heures à essayer de trouver une solution, mais c'est bien un échec cuisant qui m'a tendu les bras à chaque tentative. Dès lors, comme s'obstiner ne sert à rien face à plus fort que soi, je me tourne vers les âmes expertes de ce forum de spécialistes.

Voici mon problème. On considère une colonne dont chaque cellule contient 1 ou 0. On appelle séquence une suite de cellules adjacentes contenant le même nombre, donc 0 ou 1 dans mon exemple. Pour illustration, si on considère la colonne qui suit :

1
0
0
0
0
1

; alors on a deux séquences de 1 de longueur 1 et une séquence de 0 de longueur 4. On appelle séquence maximale la plus grande des séquences. Je reviens maintenant à ma colonne de 0 et de 1 et je voudrais savoir la longueur de la séquence maximale et combien il y en a dans la colonne.

J'ai joint un petit fichier pour illustrer mon problème. J'ai mis en valeur les séquences maximales pour plus de lisibilité. Je précise également que dans le cas qui m'occupe en réalité, il peut y avoir des cellules vides avant, après ou entre les séquences de 1 et de 0.

D'avance merci à tous !
 

Pièces jointes

Re : Longueur maximale d'une séquence de nombres

Bonsoir whiskyfizz,

Un essai avec deux formules matricielles et un nom dynamique.

Nom dynamique: ListVal -> définition:
VB:
=DECALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A;1)-1)
Une formule matricielle en F2 à copier vers la droite:
VB:
=MAX(FREQUENCE(SI(ListVal=F$1;LIGNE(ListVal));SI(ListVal<>F$1;LIGNE(ListVal))))
Une formule matricielle en F3 à copier vers la droite:
VB:
=SOMME(--(FREQUENCE(SI(ListVal=F$1;LIGNE(ListVal));SI(ListVal<>F$1;LIGNE(ListVal)))=F2))
Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.


Edit: V2 modif pour tenir compte des cas où il n'y aurait que des 1 ou 0.
La formule matricielle en F3 (à copier vers la droite) devient:
VB:
=SI(F2=0;0;SOMME(--(FREQUENCE(SI(ListVal=F$1;LIGNE(ListVal));SI(ListVal<>F$1;LIGNE(ListVal)))=F2)))
 

Pièces jointes

Dernière édition:
Re : Longueur maximale d'une séquence de nombres

Bonsoir whiskyfizz,

J'avais lu trop vite la question et n'avais pas tenu compte que des cellules vides pouvaient s'intercaler entre les cellules contenant les 0 ou les 1. 😱

Un autre essai avec toujours deux formules matricielles et un nom dynamique.

Nom dynamique: ListVal -> définition:
VB:
=DECALER(Feuil1!$A$1;0;0;EQUIV(9^9;Feuil1!$A:$A;1))
Une formule matricielle en F2 à copier vers la droite:
VB:
=MAX(FREQUENCE(SI(EXACT("@"&ListVal;"@"&F$1);LIGNE(ListVal));SI(NON(EXACT("@"&ListVal;"@"&F$1));LIGNE(ListVal))))
Une formule matricielle en F3 à copier vers la droite:
VB:
=SI(F2=0;0;SOMME(--(FREQUENCE(SI(EXACT("@"&ListVal;"@"&F$1);LIGNE(ListVal));SI(NON(EXACT("@"&ListVal;"@"&F$1));LIGNE(ListVal)))=F2)))
Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour