Somme d'une colonne sur 10 secondes glissante - Excel 2010

bonjour,

j'aimerais avoir votre aide pour faire une somme particulière.

Formules excel complexe ou code vba ?!

j'ai joint le fichier pour que cela plus facile à comprendre.

1ère colonne : heure de départ en hh:mm:ss

2ème colonne : un résultat binaire 0 ou 1

3ème colonne (formule ou code vba ?) : la somme de la 2ème colonne sur les 10 secondes précédente l'heure indiquée dans la 1ère colonne.

faire ce calcul sur chaque ligne pour calculer la somme de la 2ème colonne sur les 10 secondes précédentes.

il peut y avoir une rupture de quelques secondes inférieures ou supérieures à 10 secondes voire de quelques minutes entre 2 lignes successives donc la somme ne se fait sur le même nombre de lignes précédentes.

en espérant avoir été assez clair

Merci par avance

Bonne journée

20test.xlsx (16.52 Ko)

Bonjour et

Je vous propose un "début" de solution avec la formule suivante en C3

=SOMMEPROD(($A$2+TEMPS(0;0;10)<=A3) * ($A$2:A3>=(A3-TEMPS(0;0;10)))  * ($A$2:A3<=A3) * ( $B$2:B3) )

Le fichier joint donne toutefois 3 erreurs.

La première, en ligne 16, provient à mon avis d'une erreur dans votre résultat attendu.

Les deux dernières erreurs ....... je n'en connais l'origine ! Peut-être qu'il vous faudra creuser le format appliqué à votre colonne A puisque vous parlez d'une format hh:mm:ss alors que la saisie comporte aussi les jours.

merci pour votre réponse,

j'ai étendu le nombre de ligne pour faire les essais.

avec sommerpod cela fonctionne à l'exception des ligne 47 et 48 comme vous le faites remarqué et c'est incomprénsible étant que le reste est ok.

Avez-vous une piste ? étant donné que le format de la 1ère colonne est identique date heure avec la même date (extraction initiale des données ) !?

sinon y a t'il un moyen à partir des donéees de cette 1ère colonne de séparer en 2 colonnes le jour et les heures ?

merci

Bonjour

En c4

=SOMMEPROD((MOD($A$2:A4;1)>(MOD(A4;1)-TEMPSVAL("00:00:11")))*($B$2:B4))

Cordialement

merci cela règle mon problème ....mais ...

du coup un autre problème vient d'apparaitre sur le fichier gobal de mes données.

Celui-ci fait 226 000 lignes et en double cliquant sur le coin droit de la cellule pour tirer automatiquement la formule jusqu'à la dernière ligne...excel bloque et manque de ressources. et tout bugues malgré mes 8 go de ram et mon quadri-coeur !!!?

ça passe par tranche de 3000 lignes...et cela du coup devient un problème.

Croyez-vous qu'il est possible de transposer cette formule dans un code vba qui utiliserait moins de ressources ?

merci par avance

Bonjour

Mes ressources en VBA sont limitées.

Il est certain qu'en utilisant des variables dans la formule, on doit gagner plus de temps, mais c'est au delà de mes capacités.

Un code simple à tester pour voir si cela accélère le process.

Code Module associé au bouton

Sub Au_boulot()
Dim Cel As Range
For Each Cel In Range("C4", Range("C4").End(xlDown))
 If Cel.Offset(0, -2) = "" Then Exit Sub

 Cel.FormulaR1C1 = _
        "=SUMPRODUCT((MOD(R2C1:RC[-2],1)>(MOD(RC[-2],1)-TIMEVALUE(""00:00:11"")))*(R2C2:RC[-1]))"
Cel = Cel.Value
Next Cel
End Sub

Cordialement

merci beaucoup

je testerai tout cela lundi matin

bon week-end

Amadéus a écrit :

En c4

=SOMMEPROD((MOD($A$2:A4;1)>(MOD(A4;1)-TEMPSVAL("00:00:11")))*($B$2:B4))

Cordialement

Fabuleux l'usage de la fonction "MOD" !!!!

Rechercher des sujets similaires à "somme colonne secondes glissante 2010"