Moyenne mobile toutes les x valeurs

Résolu/Fermé
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021 - 4 août 2020 à 12:13
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021 - 7 août 2020 à 10:57
Bonjour,


je voudrais calculer un moyenne mobile sur une suite de 133 données, petites particularité, je veux pouvoir calculer la moyenne toutes les X données, X étant modifiable. si X =3 par exemple alors j'aimerais calculer la moyenne (A1;A4;A7), si X=5 par exemple alors j'aimerais calculer la moyenne (A1;A6;A11;A16;A21) donc X définit à la fois le pas de saut et le nombre d'argument de la moyenne. Formule que je veux étendre sur toute la colonne façon moyenne mobile.
A voir également:

7 réponses

via55 Messages postés 14492 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 octobre 2024 2 734
4 août 2020 à 13:34
Bonjour

Avec une fonction personnalisée
Ouvrir éditeur VBA (Alt+F11) - Insertion - Module
Copier coller le code suivant et fermer éditeur
Function moyenneperso(nb As Integer)
For n = 1 To nb * (nb - 1) Step nb
tot = tot + Range("A" & n)
Next
moyenneperso = tot / nb
End Function

La formule s'utilise selon la syntaxe =moyenneperso(x)

Cdlmnt
Via
0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
4 août 2020 à 16:25
Bonjour Via,
Merci pour votre réponse et votre aide. Je vous en suis très reconnaissant !

Juste pour comprendre : j'ai mis le code dans VBA, puis voulant appliquer la fonction dans la colonne B, j'écris

=moyenneperso(A:A;D1)
A:A étant la plage sur laquelle je veux calculer la moyenne
D1 étant X. Celui qui définit à la fois le pas de saut et le nombre d'argument de la moyenne.

J'ai également essayé =moyenneperso(A:A) et =moyenneperso(D1) et =moyenneperso(A1;D1) ... sans succès

Malheureusement pour moi cela ne fonctionne pas, mais peut être ai-je mal compris votre réponse à ma question. Je vous serais encore plus reconnaissant, de préciser la réponse.
0
via55 Messages postés 14492 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 octobre 2024 2 734
4 août 2020 à 16:45
La macro s’applique forcément sur la plage A:A, il n'y a pas lieu de l'indiquer
il suffit de remplacer x par un nombre ou par l'adresse de la cellule comportant ce nombre donc =moyenneperso(D1) devrait fonctionner
Pour voir ce qui ne va pas il me faut ton fichier
A poster sur cjoint.com, copier le lien créé et revenir le coller ici


0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
4 août 2020 à 17:21
J'ai tenté de faire au mieux avec WeTransfer : https://we.tl/t-RSpx0LQCkm
0
via55 Messages postés 14492 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 octobre 2024 2 734
4 août 2020 à 19:39
J'ai modifié la macro en conséquence pour que tu puisses choisir la colonne, le pas et le nombre
https://mon-partage.fr/f/eRutcUFN/
0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
5 août 2020 à 08:39
Merci 1000 fois !
0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
5 août 2020 à 09:13
En revanche, lorsque j'étends la formule, en figeant le pas et le nb d'arguments, mais en laissant libre la plage, cela me met toujours le même résultat, alors que normalement les chiffres devraient évoluer (j'ai tenté un F9, en vain).
0
via55 Messages postés 14492 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 octobre 2024 2 734
5 août 2020 à 10:19
Si tu étires la formule vers le bas la colonne de la moyenne ne change pas donc même résultat, si tu étires vers la droite la colonne change donc résultat différent
Le calcul part toujours de la 2eme ligne par contre si tu voulais en étirant changer de ligne de départ il faudra modifier la macro
Donne moi plus de précisions
0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
5 août 2020 à 10:35
En effet, j'aimerais étirer vers le bas. L'idée est de faire une moyenne mobile pour étudier l'évolution de la moyenne des variations.du coup le calcul doit partir de la cellule A3 si je mets la formule en B3, puis A4 si je mets la formule en B4 ... etc ...

exemple concret : si je mets 1 et 3, j'étude la moyenne mobile de chaque mois (1), sur 3 mois. et donc son évolution au fil du temps. si je mets 3 et 3, j'étudie la moyenne mobile de chaque 3 mois, sur 9 mois (pas de 3 x 3 arguments). Donc la moyenne mobile me permet de savoir ce l'évolution des écarts, à 3 mois quelque soit le mois de départ.

D'où l'intérêt d'une moyenne mobile étirable vers le bas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14492 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 octobre 2024 2 734
5 août 2020 à 10:58
Tu n'avais pas précisé cela au départ
alors remplace la 2eme ligne de la macro par celle-ci :
For n = plage.Row To plage.Row + pas * (nb - 1) Step pas

0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
5 août 2020 à 11:45
ça fonctionne, ça fait des moyennes je fais les vérifications d'usage pour voir si les chiffres correspondent et je ne retombe pas sur les mêmes chiffres en pas de 3 et 3 et quand je fais manuellement.
0
via55 Messages postés 14492 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 octobre 2024 2 734
5 août 2020 à 14:17
perso je trouve le même résultat macro ou manuel

0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
7 août 2020 à 10:24
Vous avez raison j'avais fait une faute de frappe dans la formule. Mes excuses et mes sincères remerciements pour votre aide précieuse.
0
Princedes Messages postés 27 Date d'inscription mardi 4 août 2020 Statut Membre Dernière intervention 8 mars 2021
7 août 2020 à 10:57
Au fait, si jamais, vous vous y connaissez aussi en écart type ... J'abuse de votre gentillesse, je cherche une façon de faire un écartype.si.ens un peu comme une moyenne.si.ens mais avec un écart type. J'ai posté un autre sujet dessus.
0