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

Pb avec fonction "Moyenne"!

14 réponses
Avatar
Albert
Bonjour

Je n'arrive pas à créer une requête "moyenne" toute bête!

Essai1:
exp: Moyenne(([01Prod2005].Produits Et [01Prod2004].Produits))
Les résultats de la moyenne restent bloqué à "-1" alors que les produits ont
presque tous au moins 3 chiffres.
Certains produits sont présents en 2004 mais pas 2005 et inversement.

Essai2:
exp: Moyenne([01Prod2005].Produits;[01Prod2004].Produits)
là j'ai l'erreur :
"L'expression entrée comporte une fonction dont le nombre d'arguments n'est
pas correct"


nb:
Les champs "[01Prod2005].Produits" et "[01Prod2004].Produits" sont également
issus eux-même de précédentes requêtes.
Il y a des liaisons (relations) entre ces champs grâce à un autre champ
nommé "Nref".


Merci pour toute aide ;)
Al

10 réponses

1 2
Avatar
Gilles MOUGNOZ
Bonjour, Albert

Une moyenne se calcule sur un seul champ (dans Access).
Essaie avec :
(Moyenne(([01Prod2005].Produits)) + Moyenne(([01Prod2004].Produits)))/2
C'est mieux ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"Albert" a écrit dans le message de news:
453734c0$0$1492$
Bonjour

Je n'arrive pas à créer une requête "moyenne" toute bête!

Essai1:
exp: Moyenne(([01Prod2005].Produits Et [01Prod2004].Produits))
Les résultats de la moyenne restent bloqué à "-1" alors que les produits
ont presque tous au moins 3 chiffres.
Certains produits sont présents en 2004 mais pas 2005 et inversement.

Essai2:
exp: Moyenne([01Prod2005].Produits;[01Prod2004].Produits)
là j'ai l'erreur :
"L'expression entrée comporte une fonction dont le nombre d'arguments
n'est pas correct"


nb:
Les champs "[01Prod2005].Produits" et "[01Prod2004].Produits" sont
également issus eux-même de précédentes requêtes.
Il y a des liaisons (relations) entre ces champs grâce à un autre champ
nommé "Nref".


Merci pour toute aide ;)
Al



Avatar
Albert
Bonjour Gilles,

Une moyenne se calcule sur un seul champ (dans Access).
Essaie avec :
(Moyenne(([01Prod2005].Produits)) + Moyenne(([01Prod2004].Produits)))/2
C'est mieux ?


Cà va beaucoup mieux. Merci. ;)
Toutefois, peut-être auriez-vous une solution lorsque:

1/ j'ai ceci (zero dans un enregistrement) :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20
10
0,0 20
10

Au lieu de :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20
10
0,0 20
20


2/ j'ai ceci (un enregistrement est vide) :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20
10
[vide] 20
[vide]

Au lieu de :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20
10
[vide] 20
20


Merci d'avance ;)

Avatar
Gilles MOUGNOZ
Re,
Pas tout compris (sans doute les sauts de lignes qui me perturbent...).
Si ce sont les valeurs vides qui te gènent, la fonction Nz() peut peut-être
t'aider:
Moyenne(nz([01Prod2005].Produits;0) + nz([01Prod2004].Produits;0))/2
Cela te convient-il ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bonjour Gilles,
Une moyenne se calcule sur un seul champ (dans Access).
Essaie avec :
(Moyenne(([01Prod2005].Produits)) + Moyenne(([01Prod2004].Produits)))/2
C'est mieux ?
Cà va beaucoup mieux. Merci. ;)

Toutefois, peut-être auriez-vous une solution lorsque:
1/ j'ai ceci (zero dans un enregistrement) :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20 10
0,0 20 10
Au lieu de :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20 10
0,0 20 20
2/ j'ai ceci (un enregistrement est vide) :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20 10
[vide] 20 [vide]
Au lieu de :
[01Prod2005].Produits [01Prod2004].Produits Moyenne
10 20 10
[vide] 20 20
Merci d'avance ;)



Avatar
Albert
Re,

Pas tout compris (sans doute les sauts de lignes qui me perturbent...).


Pardon voici une image plus comprhensive je l'espère. ;)
http://cjoint.com/?ktlnH8eme1

Si ce sont les valeurs vides qui te gènent, la fonction Nz() peut
peut-être t'aider:
Moyenne(nz([01Prod2005].Produits;0) + nz([01Prod2004].Produits;0))/2
Cela te convient-il ?


Je viens d'essayer mais cela ne marche pas ni dans le cas 1/ ou 2/ (à chaque
fois çà me divise le résultat pas 2 même si il n'y a qu'un seul
enregistrement pour une année)

Merci d'avance ;)

Avatar
ze_titi
(nz([01prod2005].produits;0)+nz([01prod2004].produits;0))/(iif(nz([01Prod2005].produits;0)=0;0;1)+iif(nz([01Prod2004].produits;0)=0;0;1)

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ





Re,

Pas tout compris (sans doute les sauts de lignes qui me perturbent...).


Pardon voici une image plus comprhensive je l'espère. ;)
http://cjoint.com/?ktlnH8eme1

Si ce sont les valeurs vides qui te gènent, la fonction Nz() peut
peut-être t'aider:
Moyenne(nz([01Prod2005].Produits;0) + nz([01Prod2004].Produits;0))/2
Cela te convient-il ?


Je viens d'essayer mais cela ne marche pas ni dans le cas 1/ ou 2/ (à chaque
fois çà me divise le résultat pas 2 même si il n'y a qu'un seul
enregistrement pour une année)

Merci d'avance ;)





Avatar
Gilles MOUGNOZ
Si je comprends bien, tu veux une moyenne qui ne tienne pas compte des
valeurs 0 ni nulles ?
Cela ne me semble pas très juste, peut-être vaut-il mieux comparer la
moyenne de chaque année côte à côte.
Le champ que tu cherches à faire est censé représenter une moyenne sur deux
années. Si tu exclus une des années parce qu'elle est vide, tes chiffres ne
veulent plus dire grand chose... ou je n'ai pas tout compris ce qui n'est
bien évidemment pas à exclure ;-)
Par ailleurs, la moyenne entre 10 et 20 donne 15 et pas 10, non ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Re,
Pas tout compris (sans doute les sauts de lignes qui me perturbent...).
Pardon voici une image plus comprhensive je l'espère. ;)

http://cjoint.com/?ktlnH8eme1
Si ce sont les valeurs vides qui te gènent, la fonction Nz() peut
peut-être t'aider:
Moyenne(nz([01Prod2005].Produits;0) + nz([01Prod2004].Produits;0))/2
Cela te convient-il ?
Je viens d'essayer mais cela ne marche pas ni dans le cas 1/ ou 2/ (à

chaque fois çà me divise le résultat pas 2 même si il n'y a qu'un seul
enregistrement pour une année)
Merci d'avance ;)



Avatar
ze_titi
J'ai oublié de dire bonjour... Shame on me... Oubli réparé !


Bonjour !!


--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ





Re,

Pas tout compris (sans doute les sauts de lignes qui me perturbent...).


Pardon voici une image plus comprhensive je l'espère. ;)
http://cjoint.com/?ktlnH8eme1

Si ce sont les valeurs vides qui te gènent, la fonction Nz() peut
peut-être t'aider:
Moyenne(nz([01Prod2005].Produits;0) + nz([01Prod2004].Produits;0))/2
Cela te convient-il ?


Je viens d'essayer mais cela ne marche pas ni dans le cas 1/ ou 2/ (à chaque
fois çà me divise le résultat pas 2 même si il n'y a qu'un seul
enregistrement pour une année)

Merci d'avance ;)





Avatar
Albert
Re,

Si je comprends bien, tu veux une moyenne qui ne tienne pas compte des
valeurs 0 ni nulles ?


Exact! ;)

Cela ne me semble pas très juste, peut-être vaut-il mieux comparer la
moyenne de chaque année côte à côte.
Le champ que tu cherches à faire est censé représenter une moyenne sur
deux années. Si tu exclus une des années parce qu'elle est vide, tes
chiffres ne veulent plus dire grand chose...


Dans mon cas c'est très important!

ou je n'ai pas tout compris ce qui n'est bien évidemment pas à exclure ;-)
Par ailleurs, la moyenne entre 10 et 20 donne 15 et pas 10, non ?


Oups! Merci voici je corrige:
http://cjoint.com/?ktmbWGuOHZ

En fait je viens d'essayer de poser mon problème dans Excel (dont j'ai plus
l'habitude) pour voir.
Vu que j'importe mes tables de données d'Excel et étant donné qu'avec Excel
les moyennes marchent bien quand une cellule est vide (mais pas avec zéro
"0"), la solution pour moi est de nettoyer ma table avant en supprimant les
zéros par du vide (fonction Remplacer ds Excel avec "Respecter la case" de
coché). Puis comme çà ne marche toujours pas dans Access (il me divise par 2
quoi qu'il arrive), j'exporte dans un autre fichier Excel les champs dont
j'ai besoin (plusieurs années) et là je mettrai une macro pour faire mes
moyennes. Ainsi je pourrais reimporté ce nouveau fichier Excel dans Access!
;)

Merci encore Gilles. Sachez que j'ai apprécié votre aide précieuse. ;)
Al

Avatar
ze_titi
Personnellement, ce que j'aimais bien dans la solution que j'ai proposée,
c'est que précisément elle ne tenait pas compte des valeurs nulles ou zéro...
Enfin moi, ce que j'en dis...

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Re,

Si je comprends bien, tu veux une moyenne qui ne tienne pas compte des
valeurs 0 ni nulles ?


Exact! ;)

Cela ne me semble pas très juste, peut-être vaut-il mieux comparer la
moyenne de chaque année côte à côte.
Le champ que tu cherches à faire est censé représenter une moyenne sur
deux années. Si tu exclus une des années parce qu'elle est vide, tes
chiffres ne veulent plus dire grand chose...


Dans mon cas c'est très important!

ou je n'ai pas tout compris ce qui n'est bien évidemment pas à exclure ;-)
Par ailleurs, la moyenne entre 10 et 20 donne 15 et pas 10, non ?


Oups! Merci voici je corrige:
http://cjoint.com/?ktmbWGuOHZ

En fait je viens d'essayer de poser mon problème dans Excel (dont j'ai plus
l'habitude) pour voir.
Vu que j'importe mes tables de données d'Excel et étant donné qu'avec Excel
les moyennes marchent bien quand une cellule est vide (mais pas avec zéro
"0"), la solution pour moi est de nettoyer ma table avant en supprimant les
zéros par du vide (fonction Remplacer ds Excel avec "Respecter la case" de
coché). Puis comme çà ne marche toujours pas dans Access (il me divise par 2
quoi qu'il arrive), j'exporte dans un autre fichier Excel les champs dont
j'ai besoin (plusieurs années) et là je mettrai une macro pour faire mes
moyennes. Ainsi je pourrais reimporté ce nouveau fichier Excel dans Access!
;)

Merci encore Gilles. Sachez que j'ai apprécié votre aide précieuse. ;)
Al





Avatar
Gilles MOUGNOZ
Bonjour, ze titi.
Effectivement, ta solution devrait répondre exactement à la demande.
J'avais d'ailleurs pensé à quelque chose d'approchant mais j'ai eu la flemme
d'écrire la formule ;-)
Par contre, la possibilité d'une division par zéro n'est pas à écarter ! Que
faire si les deux valeurs sont à zéro ou null ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
"ze_titi" <http://www.cerbermail.com/?sj4KuQC4GQ> a écrit dans le message de
news:
Personnellement, ce que j'aimais bien dans la solution que j'ai proposée,
c'est que précisément elle ne tenait pas compte des valeurs nulles ou
zéro...
Enfin moi, ce que j'en dis...

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Re,

Si je comprends bien, tu veux une moyenne qui ne tienne pas compte des
valeurs 0 ni nulles ?


Exact! ;)

Cela ne me semble pas très juste, peut-être vaut-il mieux comparer la
moyenne de chaque année côte à côte.
Le champ que tu cherches à faire est censé représenter une moyenne sur
deux années. Si tu exclus une des années parce qu'elle est vide, tes
chiffres ne veulent plus dire grand chose...


Dans mon cas c'est très important!

ou je n'ai pas tout compris ce qui n'est bien évidemment pas à exclure
;-)
Par ailleurs, la moyenne entre 10 et 20 donne 15 et pas 10, non ?


Oups! Merci voici je corrige:
http://cjoint.com/?ktmbWGuOHZ

En fait je viens d'essayer de poser mon problème dans Excel (dont j'ai
plus
l'habitude) pour voir.
Vu que j'importe mes tables de données d'Excel et étant donné qu'avec
Excel
les moyennes marchent bien quand une cellule est vide (mais pas avec zéro
"0"), la solution pour moi est de nettoyer ma table avant en supprimant
les
zéros par du vide (fonction Remplacer ds Excel avec "Respecter la case"
de
coché). Puis comme çà ne marche toujours pas dans Access (il me divise
par 2
quoi qu'il arrive), j'exporte dans un autre fichier Excel les champs dont
j'ai besoin (plusieurs années) et là je mettrai une macro pour faire mes
moyennes. Ainsi je pourrais reimporté ce nouveau fichier Excel dans
Access!
;)

Merci encore Gilles. Sachez que j'ai apprécié votre aide précieuse. ;)
Al







1 2