Comment faire une moyenne glissante sur une rangée de dates et de valeurs?

0

Comment ferais-je une moyenne mobile sur une rangée de dates et de valeurs?

Les données ressemblent fondamentalement à ce qui suit:

9/15/2010   199.8
9/14/2010   202
9/13/2010   200.8
9/12/2010   202.8
9/11/2010   201.4
9/10/2010   201.6
9/9/2010    201.8
9/8/2010    202.2
9/7/2010    202.2
9/6/2010    202.6
9/5/2010    205.8
9/4/2010    204.2
9/3/2010    205
9/2/2010    206.6
9/1/2010    208
8/31/2010   209.8
8/30/2010   210.2
8/29/2010   209.6
8/28/2010   209.6
8/27/2010   209.4
8/26/2010   209.8
8/25/2010   209.2
8/24/2010   210.8
cgp
la source
1
recherchez-vous une moyenne à côté de chaque ligne ou une moyenne quelque part qui s'ajuste automatiquement lorsque vous ajoutez / supprimez / modifiez des données?
JNK

Réponses:

4

En supposant que votre première donnée soit en B1, vous pouvez copier et coller la formule suivante sur la longueur de votre colonne de données. Mettez ceci en C2:

=AVERAGE($B$1:B2)

Le dollar signe "ancrer" la première cellule, en faisant une référence absolue qui ne bouge pas lorsque vous copiez / collez la formule, tandis que la deuxième cellule est une référence relative qui continuera à mettre à jour la moyenne à chaque entrée.

Michael
la source
Hrm, j'espérais sincèrement quelque chose de plus simple qu'un copier-coller de la formule sur toute la ligne. (pas que ce n'est pas ce que j'ai demandé, c'est)
cgp
@alt Vous n'obtenez pas beaucoup plus simple que un formule que vous venez de copier la colonne entière, c'est la façon dont je le ferais. +1 @ Michael.
DMA57361
Vous ne devriez pas copier et coller cela. Entrez le premier, sélectionnez la colonne entière, puis sélectionnez Edition & Remplir & Remplir.
Stephen Jennings
Utiliser la fonction de remplissage est ce que j’ai appelé un "copier / coller". Chaque cellule est évaluée individuellement et pourrait éventuellement être différente. (bien que ce ne soit pas le cas) ...
cgp
2

Par "Rolling Average", je pense que vous parlez de la moyenne des n derniers jours (disons 5 jours).

(Base sur les données que vous avez fournies, en supposant qu'il s'agisse des colonnes A et B)

Entrer =AVERAGE(OFFSET(B1,0,0,5)) dans C1, puis copiez et collez-le vers le bas (si nécessaire).

C1 devrait produire 201.36 qui est la moyenne des 5 derniers jours; C2 est 201.72, etc.


Explication:

OFFSET() délivre une plage à partir de B1 avec hauteur de 5 (vers le bas, y compris B1 lui-même).
(Remplacer 5 avec le nombre de jours que vous voulez.)

Ensuite, AVERAGE() est utilisé pour calculer la moyenne de la plage.

wilson
la source
1
=AVERAGE($B$1:INDEX($B$1:$B$100,COUNTA($B$1:$B$100)))

Cela mettra à jour que vous ajoutez des données. Mais notez que cela ne concerne que les 100 premières lignes, alors ajustez-le s'il y en aura plus. De plus, si vous insérez des lignes en haut, les références seront rétrogradées.

dkusleika
la source
0

Avoir revu ma propre réponse des années plus tard, je voudrais suggérer une formule plus simple.

  1. Entrée en C1 =average(B1:B5) (supposons une moyenne mobile sur 5 jours)
  2. Copier et coller vers le bas dans la colonne C

Remarque: pour l'enregistrement le plus ancien (24/08/2010), la moyenne mobile (colonne C) indique la valeur de ce jour. Pour le deuxième enregistrement (25/08/2010), il affichera la moyenne des deux premiers jours, et ainsi de suite.

wilson
la source