Calculer la moyenne mobile à l'aide des 3 dernières périodesJ'ai un ensemble de données avec trois colonnes ; Client, Période et Quantité. TimePeriod est au format aaaamm. J'essaie de déterminer une formule pour calculer une "moyenne mobile" sur les 3 dernières périodes, pour tous les clients.
Par exemple, dans ma ligne intitulée 201704, je souhaite qu'une formule renvoie la quantité moyenne pour tous les enregistrements de 201703, 201702 et 201701. Le TimePeriod peut se produire plusieurs fois dans les données (par client), ce qui le rend un peu plus compliqué.
Aucune suggestion?
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesMerci encore pour toute votre aide!
C'est exactement ce que je cherchais.
-Mat
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesVoici l'extension de la formule avec le Client ajouté en
dt = Current Data Table();
tp = :timeperiod;
cus = :Customer;
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-1
);
lagtp1 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-2
);
lagtp2 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
Mean(
:Quantity[dt << get rows where( ( :timeperiod == tp | :timeperiod == lagtp1 | :timeperiod == lagtp2 ) &
:Customer == cus)
]
);
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesVous aviez raison ! Cela a dû être une erreur de l'utilisateur de ma part 
Si je veux que les moyens soient séparés par client, disons que "Client" est dans sa propre colonne à référencer, est-ce possible ?
Ainsi, la colonne de sortie ne calculera que la moyenne des 3 dernières périodes pour le client de cette ligne.
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesLa formule que je vous ai donnée examine la valeur année/mois pour une ligne donnée. Il trouve ensuite quelle est la valeur 1 mois avant, et la valeur 2 mois avant serait. Il trouve ensuite la moyenne de toutes les lignes de la table de données contenant la valeur année/mois pour l'une des 3 valeurs année/mois calculées.
Par conséquent, toute ligne ayant une valeur année/mois de, disons, 201705, trouverait la quantité moyenne de toutes les lignes de la table de données qui ont la valeur de 201705, 201704 ou 201703. Mon cas de test limité a fonctionné pour cela. Veuillez noter que l'ordre physique des lignes dans le tableau de données n'a pas d'importance. La formule trouve toutes les lignes de la table de données entière qui correspondent aux 3 périodes de temps pour une ligne donnée.
Si vous pouviez me fournir un exemple de tableau de données, je pourrai approfondir cela. Ou peut-être que mon interprétation de ce que vous demandez n'est pas correcte.
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesJim - Merci pour votre patience.
J'ai ajouté cette formule dans une nouvelle colonne, comme vous l'avez guidé, mais j'obtiens la même valeur répétitive dans toute la colonne.
Je voudrais que la formule me donne juste la moyenne des 3 dernières périodes de cette ligne .
Par exemple, l'enregistrement moyen de 201704 ne devrait faire la moyenne que des 3 dernières périodes à partir d'avril 2017 (201704, 201703, 201702). La ligne suivante de 201705 devrait avoir une moyenne différente composée des 3 dernières périodes à partir de mai 2017 (201705, 201704, 201703).
Pensées?
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesCe que je vous ai donné est une nouvelle formule destinée à être utilisée dans une nouvelle colonne, qui créera une nouvelle valeur pour chaque ligne.
Dans la table de données, allez dans le menu déroulant
Cols==>Nouvelle colonne
Nommez la colonne comme vous voulez
Dans le coin inférieur gauche, cliquez sur
Propriétés de la colonne
Sélectionnez la formule
Double-cliquez sur la case bleue qui indique "Pas de formule"
Dans la fenêtre qui s'ouvre, collez la formule
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesMerci beaucoup pour votre réponse.
Je suis très novice en matière de script. Existe-t-il un moyen d'afficher la moyenne dans une nouvelle colonne, par ligne ? Ainsi, comme le script détermine la moyenne sur les 3 dernières périodes, il l'affichera pour chaque ligne dans une nouvelle colonne ?
De plus, y a-t-il un problème avec ce script au début de l'ensemble de données ? Quand il n'y a pas de lagtp1 ou de lagtp2 pour le tout premier rendez-vous ?
Re : Calculer la moyenne mobile à l'aide des 3 dernières périodesVoici votre formule
dt = Current Data Table();
tp = :timeperiod;
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-1
);
lagtp1 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-2
);
lagtp2 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
Mean(
:Quantity[dt << get rows where( :timeperiod == tp | :timeperiod == lagtp1 | :timeperiod == lagtp2 )
]
);