Compter une suite

Lemailler

XLDnaute Nouveau
Bonjour,

Le problème a déjà était posé sur ce forum, mais sans réponses satisfaisantes pour mon utilisation car je désire résoudre ce calcul sans générer de nouvelle colonne.
Problème : En colonne A se trouve une très longue liste de nombre dont je désire connaître la plus longue suite pour une valeur donnée (écart direct en terme mathématique).
Colonne A = 2 - 0 - 0 - 5.5 - 5.5 - 0 - 0 - 0 - 3.5 etc.
Ici la plus longue suite pour 0 = 3 pour 5.5 = 2

Cela est facile à résoudre en créant une colonne intermédiaire, mais comme mes tableaux sont déjà très chargés il me faut trouver autre chose.
Colonne A = liste des données et Colonne B = colonne intermédiaire

A B
2 - 0
0 - 1
0 - 2 SI(A3=0;B2+1;0)
5,5 - 0
5,5 - 0
0 - 1
0 - 2
0 - 3
3,5 - 0

3 MAX(B1:B9)

Etudiant actuellement les formules matricielles, il m'a semblé dans un premier temps que je tenais la solution avec les matricielles qui retournent un seul résultat, malheureusement cela ne colle pas. En effet, la colonne "virtuelle" que peut générer une formule matricielle pour ses calculs intermédiaires (la colonne B que je me refuse d'ajouter) doit se référer à elle-même pour se calculer.

Mon raisonnement est-il correct à propos de la formule matricielle ?
Doit-on en passer par l'écriture d'une fonction personnalisée ?

Merci par avance.
Lemailler
 

Lemailler

XLDnaute Nouveau
Re : Compter une suite

Bonjour Jean-Marie

Bon, ce n'est pas exactement la réponse à mon problème dans la mesure où je désire connaître la plus longue série pour une valeur donnée et non pas seulement la plus longue série de valeur uniforme de la liste.
Mais bravo, je suis épaté, car et la formule et la logique mathématique sont fines. Après quelques heures à m'arracher les neurones, je comprends enfin le fonctionnement de la formule.

En démontant la formule à partir de la fonction la plus imbriquée :
  • Le 1er SI renvoie le numéro de ligne lorsque A1=A2 sinon la valeur logique FAUX. Cela constitue le tableau_données.
  • Le 2ème SI renvoie le numéro de ligne lorsque A1<>A2 sinon la valeur logique FAUX. Cela constitue la matrice _intervalles.
  • FREQUENCE sous forme de matrice recherche la première valeur numérique de la matrice_intervalles (ignorant la valeur logique FAUX) dans le tableau_données. La suite du travail de cette fonction est parfaitement expliqué dans un exellent article, Formules matricielles avancées (Compter les doublons par la fonction FREQUENCE) Ce lien n'existe plus
  • MAX renvoie bien évidemment la valeur maxi retourner par la matrice FREQUENCE.
  • +1 pour terminer à cette valeur maxi.
Maintenant il me reste à saisir la logique mathématique, mais à ce point des choses, je fais un break.

A+,
Merci
Lemailler
 

JeanMarie

XLDnaute Barbatruc
Re : Compter une suite

Bonjour

Alors essaye cette formule, à valider par les touches Ctrl+shift+Entrée
Code:
=MAX(FREQUENCE(SI(A1:A9=0;LIGNE(A1:A9));SI(A1:A9<>0;LIGNE(A1:A9))))
Formule valable pour rechercher la suite des 0 dans la liste, attention, les cellules vides sont égales numériquement à 0.

@+Jean-Marie

PS : Ton lien vers le site de Laurent LONGRE ne fonctionne pas
J'aurais préféré que tu donnes un lien des fils qui sont disponibles sur XLD. Si tu avais bien cherché tu aurais trouvé ce lien
https://www.excel-downloads.com/threads/compter-le-nb-de-valeurs-consecutives.76500/
 
Dernière édition:

Lemailler

XLDnaute Nouveau
Re : Compter une suite

Bonjour Jean-Marie,

Super, cela fonctionne à merveille !

Merci encore.
Lemailler

Désolé pour le lien qui ne fonctionne pas (j'ai doublé le htttp://), mais que ce soit la page d'accueil du site de Laurent Longre ou la page précise pour laquelle j'avais placé le lien, elles portent la même adresse !!!
Donc, pour ceux que cela intéresse, la page d'accueil est ici : Ce lien n'existe plus
puis menu Formules-Fonctions / Formules matricielles avancées.

Quant au lien que tu donnes vers la solution que je cherchais, il est bien vrai que je suis passé à côté.
 

Discussions similaires

Réponses
22
Affichages
898