Calcul de moyenne cyclique sur une colonne

Bonsoir tout le monde,

je m'adresse à vous dans l'espoir de trouver une solution pour mon problème. En fait, j'ai besoin de faire une moyenne cyclique sur une colonne c'est à dire sur une même colonne de 30 cases par exemple avec 3 séries de 10 valeurs je cherche à calculer dans une colonne adjacente "B" la moyenne B1= moyenne de (A1 +A11+A21), B2= (A2+A12+A22)... le saut de valeurs est de 10 ligne à chaque fois (à titre d'exemple mais cela peut être une valeur autre). Je joins ci-après le fichier excel qui explique à peu près ce dont il s'agit.

Merci par avance pour votre aide précieuse, j'ai absolument besoin de résoudre ce problème pour pouvoir avancer sur mes calculs.

Bonsoir,

Tu places en B1 :

=MOYENNE(A1;A11;A21)

Tu tires la formule jusqu'en B10, et tu auras tes 10 moyennes !

Bonjour EDEL,

Salut MFerrand, comme tu vois, le matheux foireux n'a pas peur de se mêler de tout...

Il manque pas mal d'infos mais voici un début de (ma) solution, très simple.

Il te suffit d'encoder le step désiré dans [G1] ou de changer une valeur dans la colonne "A" et la macro calcule ta moyenne.

Ici, les couleurs s'en mêlent, créant un kaléidoscope désagréable : elles sont juste là pour illustrer l'affaire!

A lire tes remarques et surtout, tes explications plus claires quant aux règles de fonctionnement de ton calcul.

A+

Bonjour à vous MFerrand et curulis57,

je tiens tout d'abord à vous remercier pour les réponses rapides ! Egalement je tiens à préciser que mon fichier est beaucoup plus volumineux que l'exemple tout simple fourni auparavant. Sur ma colonne j'ai pratiquement 1000 valeurs minimum avec une remise à zéro de l'axe temps tous les 360° (en fait il s'agit d'une acquisition de vitesse en fonction de l'angle de rotation du vilebrequin sur un banc expérimental et un tour = 360°). Je vous joins ci après un exemple des mes acquisitions filtrées. Ce dont j'ai besoin c'est faire la moyenne des valeurs sur "n" nombre de cycles pour lisser les erreurs de mesures.

J'espère que j'ai été plus claire dans ma requête.

Merci pour vos réponses précieuses!

Bonjour,

Même chose, mais on va laisser le cycle se calculer dans la formule...

En D2 :

=MOYENNE(SI(MOD(LIGNE($A$2:$A$983);200)=MOD(LIGNE();200);B$2:B$983))

Validation matricielle (Ctrl+Maj+Entrée).

Tirer sur E2. Et tirer l'ensemble D2:E2 jusqu'à la ligne 201.

Cordialement.

Re-Salut MFerrand,

merci pour lé réponse rapide. J'ai essayé la formule que tu m'as fournie seulement ça ne marche que sur la première ligne D1 et E1 sinon quand j'étire sur les 201 cases ça ne m'affiche que des zéros !?

Une solution peut-être?

Merci !

Il est probable que tu n'as pas validé matriciellement la formule...

Dans ce cas, tu obtiens des résultats sur la première ligne, mais faux !

edit : vérification du résultat en D2 : 3,545527 (résultat que j'ai vérifié en le recalculant à partir des valeurs brutes).

Bonjour Edel, MFerrand,

Plusieurs choses :

  • les données, j'imagine, sont prises un nombre de fois identiques sur un tour ? Dans ton tableau, il manquerait donc 6 données au début?
  • les données habituellement présentées sont-elles sujettes à de telles distorsions ou, au contraire, sont-elles rigoureusement calibrées?
J'imagine que le calcul, pour être valable, doit faire la moyenne entre valeurs prises au même moment!?

- même remarque pour le bas du tableau. Je suppose que les mesures de moyenne, si le tableau est tronqué, s'arrêtent pour chaque tour à la mesure-temps complète pour tous les tours confondus?!

Questions d'un matheux foireux, je sais...

A+

Salut Curulis,

Il y a 200 mesures qui reviennent cycliquement. On a donc un cycle de 200, il faut prélever les mesures qui se correspondent sur des intervalles de 200 lignes... Lignes 2, 202, 402, 602, etc.

Bonjour MFerrand et curulis57,

en fait les mesures brutes ont une allure sinusoïdale ce qui explique le caractère distordu des valeurs acquises, également j'ai dû tronquer le tableau pour faciliter la compréhension de mon problème parce que le tableau tout brut comporte près de 14000 cellules plutôt que les 983 sauf que je l'ai mal fait d'où les cases manquantes.

Oui c'était la formule matricielle que je pensais avoir validé mais j'ai mal tapé sur le clavier apparemment, j'ai ré-essayé et ça marche je retrouve la même valeur que tu m'affiches MFerrand.

Franchement tu m'as littéralement sauvée ! J'ai eu beaucoup de mal avec les milliers de valeurs à moyenner sur mon ficher! Merci infiniment! Merci également à curulis57 c'était très sympa de ta part !

Je vous souhaite une agréable journée à tous les deux !

A bientôt.

Salut Edel, MFerrand,

Pour le plaisir, bien que ce fichier soit clairement une chasse gardée pour les formules, une version qui corrigeRAIT les 'trous' en début et en fin de données, histoire de rester cohérent dans les résultats.

Avec un petit bouton rouge en prime!

Private Sub cmdGO_Click()
'
Dim tTab, tMoy(100, 2)
'
Range("E2:F101").ClearContents
'
For x = 2 To 100
    If Cells(x, 1) = 360 Or Cells(x, 1) = 0 Then
        Range("A1:C1").Interior.Color = xlNone
        Range("A2:C" & 102 - x).Insert shift:=xlDown
        Range("A2:A" & 102 - x).Value = Range("A102:A" & 100 + (102 - x)).Value
        Range("A1:C1").Interior.Color = RGB(240, 200, 0)
        Exit For
    End If
Next
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
If (iRow - 1) Mod 100 > 0 Then
    iLig = 100 - ((iRow - 1) Mod 100)
    Range("A" & iRow + 1 & ":A" & iRow + iLig).Value = Range("A" & 102 - iLig & ":A" & 101).Value
End If
iRow = Range("A" & Rows.Count).End(xlUp).Row
'
tTab = Range("B2:C" & iRow)
For x = 0 To 99
    For y = x + 1 To UBound(tTab, 1) Step 100
        tMoy(x, 0) = tMoy(x, 0) + tTab(y, 1)
        tMoy(x, 1) = tMoy(x, 1) + tTab(y, 2)
    Next
    tMoy(x, 0) = tMoy(x, 0) / (UBound(tTab, 1) / 100)
    tMoy(x, 1) = tMoy(x, 1) / (UBound(tTab, 1) / 100)
Next

Range("E2:F101") = tMoy
'
End Sub

A+

Bonjour Curulis57,

c'est top, je trouve que le code est super élaboré ! Merci merci pour le partage, ça me sera d'une grande aide pour le post traitement de mes acquisitions très nombreuses

Je te souhaite une agréable journée !

A bientôt.

Rechercher des sujets similaires à "calcul moyenne cyclique colonne"