Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Moyenne glissante ou moving average

16 réponses
Avatar
alexia_new
Bonjour,

Quelqu'un peut-il me dire comment calculer un emoyenne glissante sous Access
? Cette fonction contrairement à Excel ne semble pas exister sous Access ?

10 réponses

1 2
Avatar
Gafish
alexia_new wrote:
Bonjour,


Bonjour,

Quelqu'un peut-il me dire comment calculer un emoyenne glissante sous
Access ? Cette fonction contrairement à Excel ne semble pas exister
sous Access ?


Regarde peut etre ce fil de discussion, tu y trouveras des pistes :
http://minilien.com/?jstL71955x
ou
http://groups.google.fr/group/microsoft.public.fr.access/browse_thread/thread/cee3a49f442a8dd3/d44e8213e6821a89?q=moyenne+glissante&rnum=2#d44e8213e6821a89

Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
alexia_new
Lelien dans le corps du texte n'est plus bon : "PS:Là, tu as l'exemple à
partir duquel je t'ai répondu :
http://cjoint.com/?eonOH1JPN1 "
Or, il se trouve que l'exemple est donné ds ce lien, pouvez-vous me donner
l'exemple ?
Merci!



Bonjour,

Quelqu'un peut-il me dire comment calculer un emoyenne glissante sous Access
? Cette fonction contrairement à Excel ne semble pas exister sous Access ?


Avatar
Eric
Bonsoir alexia_new,

Voila la bd exemple que j'avais mise sur cjoint.com pour Joël Garbe.

Nouveau lien : http://cjoint.com/?bBwMQGmzg7

car les fichiers mis sur cjoint.com ne sont conservés que pendant 21 jours.

La table et la requête sont celles de son exemple donné sur le lien
indiqué par Gafish.

Lelien dans le corps du texte n'est plus bon : "PS:Là, tu as l'exemple à
partir duquel je t'ai répondu :
http://cjoint.com/?eonOH1JPN1 "
Or, il se trouve que l'exemple est donné ds ce lien, pouvez-vous me donner
l'exemple ?
Merci!


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
alexia_new
Merci bcp Eric, je vais regarder votre fichier et vous tiens au courant.
Alexia


Bonsoir alexia_new,

Voila la bd exemple que j'avais mise sur cjoint.com pour Joël Garbe.

Nouveau lien : http://cjoint.com/?bBwMQGmzg7

car les fichiers mis sur cjoint.com ne sont conservés que pendant 21 jours.

La table et la requête sont celles de son exemple donné sur le lien
indiqué par Gafish.

Lelien dans le corps du texte n'est plus bon : "PS:Là, tu as l'exemple à
partir duquel je t'ai répondu :
http://cjoint.com/?eonOH1JPN1 "
Or, il se trouve que l'exemple est donné ds ce lien, pouvez-vous me donner
l'exemple ?
Merci!


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
alexia_new
Bonsoir Eric,

J'ai regardé la requête et j'avoue avoir qqs questions. Déjà, est-on obligé
de mettre mois et année en clés primaires ? Ensuite en décomposant la formule
:

Avec Round: Round(MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'");0)

je remarque que si j'écris : Expr2: "cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'"
cela me donne comme résultat dans le champs: Expr2 :
cstr([annee]) & [Mois]<='200501', je ne comprends pas trop à quoi sert cette
partie mais je devine le but de la manip. Par contre, dès que je réduis
l'expression à : Expr1: cstr([annee]) & [Mois], ce que j'ai tapé se
transforme en Expr1: CChaîne([annee]) & [Mois] avec en résultat : 200501 (A
quoi correspond cette fonction CChaîne, visiblement à passer du format nombre
en texte ? )
Sinon, ma question est la suivante, si je veux effectuer cette moyenne
glissante en introduisant un pas de 5 (t+5) par exemple, cad que je veux
calculer la moyenne glissante avec un décalage toujours de de 1 mais avec
une moyenne calculée à chaque fois sur les 5 derniers records et ceci en
glissant de mois en mois, comment puis-je faire ?

Annee Mois Effectif Moyenne glissante pas de 5
2005 01 100
2005 02 110
2005 03 120
2005 04 110
2006 01 300 148
2006 02 303 188,6
2006 03 200 206,6
2006 04 400 262,6
2006 05 150 270,6
2006 06 350 280,6
2006 07 270 274

Merci encore pour votre aide.

Alexia


Bonsoir alexia_new,

Voila la bd exemple que j'avais mise sur cjoint.com pour Joël Garbe.

Nouveau lien : http://cjoint.com/?bBwMQGmzg7

car les fichiers mis sur cjoint.com ne sont conservés que pendant 21 jours.

La table et la requête sont celles de son exemple donné sur le lien
indiqué par Gafish.

Lelien dans le corps du texte n'est plus bon : "PS:Là, tu as l'exemple à
partir duquel je t'ai répondu :
http://cjoint.com/?eonOH1JPN1 "
Or, il se trouve que l'exemple est donné ds ce lien, pouvez-vous me donner
l'exemple ?
Merci!


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
Bonjour,

Il n'est pas necesaire que (Annee-Mois) constitue la clé primaire. Pour
la suite, je remplacerai Annee par An et Mois par LeMois car annee et
mois sont des mots réservés.

Dans une fonction de Domaine ( MoyDom, RechDom, MaxDom, SomDom ...) le
3eme argument appelé critère est une clause SQL Where sans le mot Where.
Le SQL s'écrit en US. C'est pourquoi j'ai mis
MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" où CStr est le mot US
pour correspondant à CChaîne ( ah le french avec ses accents ^ !
Par contre, je concatène ensuite un champ de la requête, après le &
et là, étant sorti de la chaîne SQL, je dois revenir au French, même si
je le fais pas Access s'en chargera.
Oui CChaîne est une fonction qui convertit en Chaine de caractères la
variable passée. On est obligé de passer par là pour concaténer l'année
et le mois pour les calculs.

Pour répondre à ton besoin, la démarche est la suivante:

A - Création d'une requête avec les champs voulus et ajout d'un champ
concaténant l'année et le mois, et d'un champ calculé qui sert de
compteur. Soit RQALEXIA1 cette requête.

1er champ - Compteur:Compteur: CpteDom("*";"alexia";"Cstr(An) &
format(lemois,'00')<'" & [AnneeMois] & "'")+1
2eme champ - AnneeMois: CChaîne([An]) & Format([LeMois];"00")
3e champ - An
4e champ - LeMois
5e champ - Effectif

B - Création d'une requête calculant la moyenne glissante basée sur la
requête précédente:

1er champ - An
2e champ - LeMois
3e champ - Effectif
4e champ - Moving Average:
VraiFaux([Compteur]>4;MoyDom("Effectif";"RQAlexia1";"Compteur Between "
& [Compteur]-4 & " and " & [Compteur]);Null)

Remarque : Faut-il arrondir les valeurs de Moving Average ?

Et voila.

(PS: Les formules des champs calculés tiennent sur une ligne)
PS2: Si problème, je peux te mettre une BD avec ton exemple et les 2
requêtes sur cjoint.com

Bonsoir Eric,

J'ai regardé la requête et j'avoue avoir qqs questions. Déjà, est-on obligé
de mettre mois et année en clés primaires ? Ensuite en décomposant la formule
:

Avec Round: Round(MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'");0)

je remarque que si j'écris : Expr2: "cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'"
cela me donne comme résultat dans le champs: Expr2 :
cstr([annee]) & [Mois]<='200501', je ne comprends pas trop à quoi sert cette
partie mais je devine le but de la manip. Par contre, dès que je réduis
l'expression à : Expr1: cstr([annee]) & [Mois], ce que j'ai tapé se
transforme en Expr1: CChaîne([annee]) & [Mois] avec en résultat : 200501 (A
quoi correspond cette fonction CChaîne, visiblement à passer du format nombre
en texte ? )
Sinon, ma question est la suivante, si je veux effectuer cette moyenne
glissante en introduisant un pas de 5 (t+5) par exemple, cad que je veux
calculer la moyenne glissante avec un décalage toujours de de 1 mais avec
une moyenne calculée à chaque fois sur les 5 derniers records et ceci en
glissant de mois en mois, comment puis-je faire ?

Annee Mois Effectif Moyenne glissante pas de 5
2005 01 100
2005 02 110
2005 03 120
2005 04 110
2006 01 300 148
2006 02 303 188,6
2006 03 200 206,6
2006 04 400 262,6
2006 05 150 270,6
2006 06 350 280,6
2006 07 270 274

Merci encore pour votre aide.

Alexia



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

J'avais oublié de préciser que le champ AnneeMois doit être trié en
ordre croissant dans la 1ere requête (ou la 2eme) pour que la 2eme
requête affiche les données de manière cohérente.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
alexia_new
Hello Eric,

Tout d'abord un grand merci pour ton aide. J'ai pensé que le plus simple
serait de t'envoyer ma base de donnée que j'ai limitée en taille bien sûr, ce
n'est qu'un exemple mais qui reprend bien mes besoins. Tu trouveras le
fichier zippé à cette adresse : http://cjoint.com/?cbj5ppRPKr

Je t'ai mis la base de données Access, ds la requête : "Requête1 conversion
du mois en string", j'ai transformé le mois du format numérique en string.
Dans la requête : "Requête2 Moyenne arith de total score par Imp Name", je
te présente mon calcul de moyenne arithmétique pour le champ Total score et
ceci avec un group by sur l'IMP_Name.

C'est ce calcul que je voudrais reproduire mais en utilisant cette fois la
moyenne mobile ou glissante sur par exemple les 4 derniers enregistrements
(donc avec un intervalle ou décalage de 4). Le but de la manoeuvre ici c'est
que j'accorde plus de poids ou d'importance ou records les plus récents. Je
t'ai mis dans le fichier excel ce que je souhaiterais avoir comme résultat
(en l'automatisant sous Access car j'ai un nb de records dans ma base très
important). Par contre pour ton info, je n'ai jamais programmé sous Access,
je manipule que les tables et requêtes en faisant des liens entre elles, je
sais modifier le code SQL dans les requêtes, bref je maîtrise assez bien
l'outil ; j'ai fait de l'Sql sous Oracle et sous SQL+ mais c'est tout. Je
suis statisticienne, mais pas informaticienne ... J'ai appris tout sur le
tas.

Dans le fichier Excel, tu verras les résultats suivants :
A & W MADAGASCAR S.A.R.L. / avg = 3,046042715 et Moy mobile (t=4) =
3,046042715. Ici on a le même résultat car le nb de records est <=4 donc
moyenne mobile=moyenne arithmétique.

A chaque fois que le nb de records pour un Imp_name i donné : IMP_i est <=4
alors avg de Total score pour IMP_i = moyenne mobile de Total score pour IMP_i

AD COMPANY / avg=1,616586273 et Moy mobile (t=4) =0,051464125

AIR MADAGASCAR / avg,31536414 et Moy mobile (t=4)=3,867241505

AQUACULTURE DE LA MAHAJAMBA / avg et Moy mobile (t=4)=7,033275216

A partir de ces exemples, on voit que si on prend les 4 dernières moyennes
lissées, on a une moyenne pour le champ Total score bien inférieure à ce
quelle serait si on prenait la totalité de la période. Sur une période
récente la moyenne de Total score
est plus faible.

Voilà exposé mon problème, je suis à ton écoute si tu as une idée pour
m'aiguiller ou me dire comment faire. A très bientôt et merci encore pour ton
aide.

Alexia


Bonsoir Eric,

J'ai regardé la requête et j'avoue avoir qqs questions. Déjà, est-on obligé
de mettre mois et année en clés primaires ? Ensuite en décomposant la formule
:

Avec Round: Round(MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'");0)

je remarque que si j'écris : Expr2: "cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'"
cela me donne comme résultat dans le champs: Expr2 :
cstr([annee]) & [Mois]<='200501', je ne comprends pas trop à quoi sert cette
partie mais je devine le but de la manip. Par contre, dès que je réduis
l'expression à : Expr1: cstr([annee]) & [Mois], ce que j'ai tapé se
transforme en Expr1: CChaîne([annee]) & [Mois] avec en résultat : 200501 (A
quoi correspond cette fonction CChaîne, visiblement à passer du format nombre
en texte ? )
Sinon, ma question est la suivante, si je veux effectuer cette moyenne
glissante en introduisant un pas de 5 (t+5) par exemple, cad que je veux
calculer la moyenne glissante avec un décalage toujours de de 1 mais avec
une moyenne calculée à chaque fois sur les 5 derniers records et ceci en
glissant de mois en mois, comment puis-je faire ?

Annee Mois Effectif Moyenne glissante pas de 5
2005 01 100
2005 02 110
2005 03 120
2005 04 110
2006 01 300 148
2006 02 303 188,6
2006 03 200 206,6
2006 04 400 262,6
2006 05 150 270,6
2006 06 350 280,6
2006 07 270 274

Merci encore pour votre aide.

Alexia


Bonsoir alexia_new,

Voila la bd exemple que j'avais mise sur cjoint.com pour Joël Garbe.

Nouveau lien : http://cjoint.com/?bBwMQGmzg7

car les fichiers mis sur cjoint.com ne sont conservés que pendant 21 jours.

La table et la requête sont celles de son exemple donné sur le lien
indiqué par Gafish.

Lelien dans le corps du texte n'est plus bon : "PS:Là, tu as l'exemple à
partir duquel je t'ai répondu :
http://cjoint.com/?eonOH1JPN1 "
Or, il se trouve que l'exemple est donné ds ce lien, pouvez-vous me donner
l'exemple ?
Merci!


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
alexia_new
Hello Eric,

Tout d'abord un grand merci pour ton aide. J'ai pensé que le plus simple
serait de t'envoyer ma base de donnée que j'ai limité en taille bien sûr, ce
n'est qu'un exemple mais qui reprend bien mes besoins. Tu trouveras le
fichier zippé à cette adresse : http://cjoint.com/?cbj5ppRPKr

Je t'ai mis la base de données Access, ds la requête :Requête1 conversion du
mois en string, j'ai transformé le moi du numérique en string. Dans la
requête :Requête2 Moyenne arith de total score par Imp Name, je te présente
mon calcul de moyenne arithmétique pour le champ Total score et ceci avec un
group by sur l'IMP_Name.

C'est ce calcul que je voudrais reproduire mais en utilisant cette fois la
moyenne mobile ou glissante sur par exemple les 4 derniers enregistrements
(donc avec un intervalle ou décalage de 4). Le but de la manoeuvre ici c'est
que j'accorde plus de poids ou d'importance ou records les plus récents. Je
t'ai mis dans le fichier excel ce que je souhaiterais avoir comme résultat
(en l'automatisant sous Access car j'ai un nb de records dans ma base très
important). Par contre pour ton info, je n'ai jamais programmé sous Access,
je manipule que les tables et requêtes en faisant des liens entre elles, je
sais modifier le code SQL dans les requêtes, bref je maîtrise assez bien
l'outil ; j'ai fait de l'Sql sous Oracle et sous SQL+ mais c'est tout. Je
suis statisticienne, mais pas informaticienne ... J'ai appris tout sur le
tas.

Dans le fichier Excel, tu trouveras qqs résultats :

A & W MADAGASCAR S.A.R.L. / avg = 3,046042715 et Moy mobile (t=4) =
3,046042715. Ici on a le même résultat car le nb de records est <=4 donc
moyenne mobile=moyenne arithmétique.

A chaque fois que le nb de records pour un Imp_name i donné : IMP_i est <=4
alors avg de Total score pour IMP_i = moyenne mobile de Total score pour IMP_i

AD COMPANY / avg=1,616586273 et Moy mobile (t=4) =0,051464125

AIR MADAGASCAR / avg,31536414 et Moy mobile (t=4)=3,867241505

AQUACULTURE DE LA MAHAJAMBA / avg et Moy mobile (t=4)=7,033275216

A partir de ces exemples, on voit que si on prend les 4 dernières moyennes
lissées, on a une moyenne pour le champ Total score bien inférieure à ce
quelle serait si on prenait la totalité de la période. Sur une période
récente la moyenne de Total score
est plus faible.

Voilà exposé mon problème, je suis à ton écoute si tu as une idée pour
maiguiller ou me dire comment faire. A très bientôt et merci encore pour ton
aide.



Bonjour,

Il n'est pas necesaire que (Annee-Mois) constitue la clé primaire. Pour
la suite, je remplacerai Annee par An et Mois par LeMois car annee et
mois sont des mots réservés.

Dans une fonction de Domaine ( MoyDom, RechDom, MaxDom, SomDom ...) le
3eme argument appelé critère est une clause SQL Where sans le mot Where.
Le SQL s'écrit en US. C'est pourquoi j'ai mis
MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" où CStr est le mot US
pour correspondant à CChaîne ( ah le french avec ses accents ^ !
Par contre, je concatène ensuite un champ de la requête, après le &
et là, étant sorti de la chaîne SQL, je dois revenir au French, même si
je le fais pas Access s'en chargera.
Oui CChaîne est une fonction qui convertit en Chaine de caractères la
variable passée. On est obligé de passer par là pour concaténer l'année
et le mois pour les calculs.

Pour répondre à ton besoin, la démarche est la suivante:

A - Création d'une requête avec les champs voulus et ajout d'un champ
concaténant l'année et le mois, et d'un champ calculé qui sert de
compteur. Soit RQALEXIA1 cette requête.

1er champ - Compteur:Compteur: CpteDom("*";"alexia";"Cstr(An) &
format(lemois,'00')<'" & [AnneeMois] & "'")+1
2eme champ - AnneeMois: CChaîne([An]) & Format([LeMois];"00")
3e champ - An
4e champ - LeMois
5e champ - Effectif

B - Création d'une requête calculant la moyenne glissante basée sur la
requête précédente:

1er champ - An
2e champ - LeMois
3e champ - Effectif
4e champ - Moving Average:
VraiFaux([Compteur]>4;MoyDom("Effectif";"RQAlexia1";"Compteur Between "
& [Compteur]-4 & " and " & [Compteur]);Null)

Remarque : Faut-il arrondir les valeurs de Moving Average ?

Et voila.

(PS: Les formules des champs calculés tiennent sur une ligne)
PS2: Si problème, je peux te mettre une BD avec ton exemple et les 2
requêtes sur cjoint.com

Bonsoir Eric,

J'ai regardé la requête et j'avoue avoir qqs questions. Déjà, est-on obligé
de mettre mois et année en clés primaires ? Ensuite en décomposant la formule
:

Avec Round: Round(MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'");0)

je remarque que si j'écris : Expr2: "cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'"
cela me donne comme résultat dans le champs: Expr2 :
cstr([annee]) & [Mois]<='200501', je ne comprends pas trop à quoi sert cette
partie mais je devine le but de la manip. Par contre, dès que je réduis
l'expression à : Expr1: cstr([annee]) & [Mois], ce que j'ai tapé se
transforme en Expr1: CChaîne([annee]) & [Mois] avec en résultat : 200501 (A
quoi correspond cette fonction CChaîne, visiblement à passer du format nombre
en texte ? )
Sinon, ma question est la suivante, si je veux effectuer cette moyenne
glissante en introduisant un pas de 5 (t+5) par exemple, cad que je veux
calculer la moyenne glissante avec un décalage toujours de de 1 mais avec
une moyenne calculée à chaque fois sur les 5 derniers records et ceci en
glissant de mois en mois, comment puis-je faire ?

Annee Mois Effectif Moyenne glissante pas de 5
2005 01 100
2005 02 110
2005 03 120
2005 04 110
2006 01 300 148
2006 02 303 188,6
2006 03 200 206,6
2006 04 400 262,6
2006 05 150 270,6
2006 06 350 280,6
2006 07 270 274

Merci encore pour votre aide.

Alexia



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
alexia_new
Hello Eric,

Tout d'abord un grand merci pour ton aide. J'ai pensé que le plus simple
serait de t'envoyer ma base de donnée que j'ai limité en taille bien sûr, ce
n'est qu'un exemple mais qui reprend bien mes besoins. Tu trouveras le
fichier zippé à cette adresse : http://cjoint.com/?cbj5ppRPKr

Je t'ai mis la base de données Access, ds la requête :Requête1 conversion du
mois en string, j'ai transformé le moi du numérique en string. Dans la
requête :Requête2 Moyenne arith de total score par Imp Name, je te présente
mon calcul de moyenne arithmétique pour le champ Total score et ceci avec un
group by sur l'IMP_Name.

C'est ce calcul que je voudrais reproduire mais en utilisant cette fois la
moyenne mobile ou glissante sur par exemple les 4 derniers enregistrements
(donc avec un intervalle ou décalage de 4). Le but de la manoeuvre ici c'est
que j'accorde plus de poids ou d'importance ou records les plus récents. Je
t'ai mis dans le fichier excel ce que je souhaiterais avoir comme résultat
(en l'automatisant sous Access car j'ai un nb de records dans ma base très
important). Par contre pour ton info, je n'ai jamais programmé sous Access,
je manipule que les tables et requêtes en faisant des liens entre elles, je
sais modifier le code SQL dans les requêtes, bref je maîtrise assez bien
l'outil ; j'ai fait de l'Sql sous Oracle et sous SQL+ mais c'est tout. Je
suis statisticienne, mais pas informaticienne ... J'ai appris tout sur le
tas.

A & W MADAGASCAR S.A.R.L. / avg = 3,046042715 et Moy mobile (t=4) =
3,046042715. Ici on a le même résultat car le nb de records est <=4 donc
moyenne mobile=moyenne arithmétique.

A chaque fois que le nb de records pour un Imp_name i donné : IMP_i <=4
alors avg de Total score pour IMP_i = moyenne mobile de Total score pour IMP_i

AD COMPANY / avg=1,616586273 et Moy mobile (t=4) =0,051464125

AIR MADAGASCAR / avg,31536414 et Moy mobile (t=4)=3,867241505

AQUACULTURE DE LA MAHAJAMBA / avg et Moy mobile (t=4)=7,033275216

A partir de ces exemples, on voit que si on prend les 4 dernières moyennes
lissées, on a une moyenne pour le champ Total score bien inférieure à ce
quelle serait si on prenait la totalité de la période. Sur une période
récente la moyenne de Total score
est plus faible.

Voilà exposé mon problème, je suis à ton écoute si tu as une idée pour
maiguiller ou me dire comment faire. A très bientôt et merci encore pour ton
aide.



Bonjour,

Il n'est pas necesaire que (Annee-Mois) constitue la clé primaire. Pour
la suite, je remplacerai Annee par An et Mois par LeMois car annee et
mois sont des mots réservés.

Dans une fonction de Domaine ( MoyDom, RechDom, MaxDom, SomDom ...) le
3eme argument appelé critère est une clause SQL Where sans le mot Where.
Le SQL s'écrit en US. C'est pourquoi j'ai mis
MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" où CStr est le mot US
pour correspondant à CChaîne ( ah le french avec ses accents ^ !
Par contre, je concatène ensuite un champ de la requête, après le &
et là, étant sorti de la chaîne SQL, je dois revenir au French, même si
je le fais pas Access s'en chargera.
Oui CChaîne est une fonction qui convertit en Chaine de caractères la
variable passée. On est obligé de passer par là pour concaténer l'année
et le mois pour les calculs.

Pour répondre à ton besoin, la démarche est la suivante:

A - Création d'une requête avec les champs voulus et ajout d'un champ
concaténant l'année et le mois, et d'un champ calculé qui sert de
compteur. Soit RQALEXIA1 cette requête.

1er champ - Compteur:Compteur: CpteDom("*";"alexia";"Cstr(An) &
format(lemois,'00')<'" & [AnneeMois] & "'")+1
2eme champ - AnneeMois: CChaîne([An]) & Format([LeMois];"00")
3e champ - An
4e champ - LeMois
5e champ - Effectif

B - Création d'une requête calculant la moyenne glissante basée sur la
requête précédente:

1er champ - An
2e champ - LeMois
3e champ - Effectif
4e champ - Moving Average:
VraiFaux([Compteur]>4;MoyDom("Effectif";"RQAlexia1";"Compteur Between "
& [Compteur]-4 & " and " & [Compteur]);Null)

Remarque : Faut-il arrondir les valeurs de Moving Average ?

Et voila.

(PS: Les formules des champs calculés tiennent sur une ligne)
PS2: Si problème, je peux te mettre une BD avec ton exemple et les 2
requêtes sur cjoint.com

Bonsoir Eric,

J'ai regardé la requête et j'avoue avoir qqs questions. Déjà, est-on obligé
de mettre mois et année en clés primaires ? Ensuite en décomposant la formule
:

Avec Round: Round(MoyDom("Effectif";"JG";"cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'");0)

je remarque que si j'écris : Expr2: "cstr([annee]) & [Mois]<='" &
CChaîne([annee]) & [Mois] & "'"
cela me donne comme résultat dans le champs: Expr2 :
cstr([annee]) & [Mois]<='200501', je ne comprends pas trop à quoi sert cette
partie mais je devine le but de la manip. Par contre, dès que je réduis
l'expression à : Expr1: cstr([annee]) & [Mois], ce que j'ai tapé se
transforme en Expr1: CChaîne([annee]) & [Mois] avec en résultat : 200501 (A
quoi correspond cette fonction CChaîne, visiblement à passer du format nombre
en texte ? )
Sinon, ma question est la suivante, si je veux effectuer cette moyenne
glissante en introduisant un pas de 5 (t+5) par exemple, cad que je veux
calculer la moyenne glissante avec un décalage toujours de de 1 mais avec
une moyenne calculée à chaque fois sur les 5 derniers records et ceci en
glissant de mois en mois, comment puis-je faire ?

Annee Mois Effectif Moyenne glissante pas de 5
2005 01 100
2005 02 110
2005 03 120
2005 04 110
2006 01 300 148
2006 02 303 188,6
2006 03 200 206,6
2006 04 400 262,6
2006 05 150 270,6
2006 06 350 280,6
2006 07 270 274

Merci encore pour votre aide.

Alexia



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




1 2