XL 2016 Formule calcul

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

  • SURVIE.xlsx
    12.5 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • SURVIE.xlsm
    19.4 KB · Affichages: 8

djam28

XLDnaute Occasionnel
Bonjour Sylvanu,
Mille mercis , au top. Une dernière requête, mon vrai tableau ne commence pas à la première ligne et la colonne cible (DC) est différente, peux-tu adapter la macro, je suis vraiment nul, je t'en serai reconnaissant!!
Meci+++
 

Pièces jointes

  • Copie de SURVIE-2.xlsm
    17.3 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Copie de SURVIE-2.xlsm
    18.8 KB · Affichages: 4

djam28

XLDnaute Occasionnel
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

  • Copie de Survie VV.xlsm
    24.6 KB · Affichages: 4

djam28

XLDnaute Occasionnel
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

  • Copie de Survie V2-1.xlsm
    32.5 KB · Affichages: 2

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar