Calculer une moyenne mobile
Bonjour,
Je souhaite calculer une moyenne mobile sur 12 mois, mes données étant groupées mois par mois. J'ai procédé de la façon suivante :
Ajout d'une formule @init dans l'entête de groupe :
Code:
1 2 3 4 5 6 7
|
WhilePrintingRecords;
//initialise 12 elements... 1 par mois
if not inrepeatedGroupHeader then
(
numberVar array PreviousMonths := [0,0,0,0,0,0,0,0,0,0,0,0];
); |
Et ajout d'une formule @MoyenneMobile dans le pied de page du groupe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
numbervar array PreviousMonths;
numbervar i;
//décalage des 11 élements précédents
for i := 1 to 11 do
(
PreviousMonths[i] := PreviousMonths[i+1];
);
// Mise à jour du 12e élément
PreviousMonths[12] := Sum ({Table.ChampAMoyenner}, {Table.ChampDuGroupe}, "monthly") ;
// Calcul de la moyenne
Average(PreviousMonths); |
Or, quand je valide ma formule @init, Crystal me dit qu'il manque un "else". Et si je supprime ma condition "if", Crystal me dit qu'un tableau ne peut pas être le résultat d'une formule.
Pouvez-vous me dire où se situe mon erreur ?
Y a t-il plus simple ?
Merci d'avance,
C.