XL 2016 Formule calcul

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

djam28

XLDnaute Occasionnel
Bonjour à tous,
Je sollicite vos connaissances pour résoudre un petit problème sur excel. J'ai un fichier (ci-joint avec les explications) avec 3 colonnes: temps , DC (binaire 1/0) et une colonne censure où je voudrais mettre une formule qui compte le total des 0 entre entre chaque 1 de la colonne DC (voir les explications sur le fichier ).
Je vous remercie de ce que vous ferez
🙂
DE
 

Pièces jointes

Bonjour Djam,
Un essai en PJ avec une fonction perso :
VB:
Function NB0(Ligne%)
    If Cells(Ligne, 2) = 0 Then NB0 = "": Exit Function
    If Ligne = 2 And Cells(Ligne, 2) = 1 Then NB0 = 0: Exit Function
    For L = Ligne - 1 To 1 Step -1
        If Cells(L, 2) = 1 Then Exit Function
        NB0 = NB0 + 1
    Next L
End Function
La syntaxe est =NB0(LIGNE())
Dans la PJ la formule est utilisée colonne 7.
A noter certaines erreurs ( colonne 10 ) mais après recomptage, j'ai bien peur que cela soit dans vos résultats et non les miens. 😂
 

Pièces jointes

Re le fil,
Si le tableau peut être n'importe où alors il faut lui préciser où il commence.
Un ex avec :
VB:
Function NB0(Ligne%, Colonne%, LigneDébut%)
    Application.Volatile
    If Cells(Ligne, Colonne - 1) = 0 Then NB0 = "": Exit Function
    If Cells(Ligne, Colonne - 1) = 1 And Cells(Ligne - 1, Colonne) = "Censure" Then NB0 = 0: Exit Function
    For L = Ligne - 1 To LigneDébut + 1 Step -1
        If Cells(L, Colonne - 1) = 1 Then Exit Function
        NB0 = NB0 + 1
    Next L
End Function
 

Pièces jointes

Bonjour @djam28, Sylvain

Je te propose une variante en VBA

@Phil69970
Bonsoir Phil,
Je voudrais reprendre ta suggestion, avec comme critère le compte des 0 entre les 1 et non le nombre des lignes , ci joint l'exemple. (en rouge le résultat attendu) ..si c'est possible en formule ou sinon en VBA macro
Merci beaucoup
DE
 

Pièces jointes

Re le fil

Voici le fichier modifié :

Comme il y a une erreur en "J18" et en "J23" j'ai mis les résultats dans la colonne L

@Phil69970
Bonsoir Phil,
Désolé de vous déranger à nouveau, votre stratégie répond à mes attentes. Cela étant, j'ai changé ma façon de faire et je voudrais apporter un petit changement à ta macro. Je voudrais faire la somme de la colonne rouge entre chaque 1 (en jaune). J'ai mis un exemple plus parlant. MERCI INFINIMENT
 

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

Réponses
17
Affichages
654
Réponses
17
Affichages
583
Réponses
3
Affichages
126
Retour