Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Voici mon petit soucis sur lequel je penche depuis plus d'une semaine...
Mon tableau croisé dynamique est composé de trois dimensions: représentant, client et n° de commande.
Je dois y calculer en € la valeur moyenne de mes devis.
Pour la dimension n° de commande, je prends la moyenne de tous les devis réalisés. Pour la dimension client, je prend la moyenne des valeurs précédemment calculées.
Finalement pour la dimension représentant, je pensais faire la même chose, mais pour une raison inconnu, qlikview ne me calcule pas la moyenne sur les clients, mais sur les commande, ce qui vient fausser mon résultat...
Voici l'expression que j'utilise:
if(Dimensionality()=3, aggr(sum(JD_PX_TOTAL)/count(JD_CODUNIQ), JD_NDEVIS),
if(Dimensionality()=2, avg(aggr(sum(JD_PX_TOTAL)/count(JD_CODUNIQ), JD_NDEVIS)),
if(Dimensionality()=1, sum(aggr(avg(aggr(sum(JD_PX_TOTAL)/count(JD_CODUNIQ), JD_NDEVIS)), JD_REF_CLIENT))
)))
Je vous avoue que j'ai essayé plusieurs expressions différentes depuis la semaine passée et rien n'y fais, je n'arrive pas à additionner les moyennes de chaque client pour en reprendre une moyenne pour le représentant
Bonjour,
Peux tu mettre un fichier d'exemple ?
Merci
Voici le fichier qvw et les fichiers qvd avec les données
Tableau normal:
Dimension: JD_CODUNIQ
Formule pour les devis: aggr(NODISTINCT avg(JD_PX_TOTAL),JD_NDEVIS)
Formule pour les clients: aggr(NODISTINCT avg(JD_PX_TOTAL), JD_REF_CLIENT)
Pivot:
Dimensions: JD_CODUNIQ; JD_NDEVIS; JD_REF_CLIENT
Formules:
Formule pour les devis: aggr(NODISTINCT avg(JD_PX_TOTAL),JD_NDEVIS)
Formule pour les clients: aggr(NODISTINCT avg(JD_PX_TOTAL), JD_REF_CLIENT)
Voici ce que j'ai utilisé:
if(count({<JD_DATE=, JD_NDEVIS=P(JD_NDEVIS), JD_NVARIANT_FABR={1}>} JD_CODUNIQ) = count ({<JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_CODUNIQ),
(
if(Dimensionality()=3, aggr(NODISTINCT avg({<JD_NVARIANT_FABR={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_NDEVIS),
if(Dimensionality()=2, aggr(NODISTINCT avg({<JD_NVARIANT_FABR={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_NDEVIS),
if(Dimensionality()=1, aggr(NODISTINCT avg({<JD_NVARIANT_FABR={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_CODE_REP))))
),
(
if(Dimensionality()=3, aggr(NODISTINCT avg({<JD_NVARIANT_COMM={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL),JD_NDEVIS),
if(Dimensionality()=2, aggr(NODISTINCT avg({<JD_NVARIANT_COMM={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_NDEVIS),
if(Dimensionality()=1, aggr(NODISTINCT avg({<JD_NVARIANT_COMM={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_CODE_REP))))
)
)
Mais comme ce n'était pas correcte, j'ai essayé avec ceci (la dernière dimension n'est pas juste), mais ça ne fonctionne pas non plus 😕
if(count({<JD_DATE=, JD_NDEVIS=P(JD_NDEVIS), JD_NVARIANT_FABR={1}>} JD_CODUNIQ) = count ({<JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_CODUNIQ),
(
if(Dimensionality()=3, aggr(NODISTINCT avg({<JD_NVARIANT_FABR={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_NDEVIS),
if(Dimensionality()=2, aggr(avg(aggr(NODISTINCT avg({<JD_NVARIANT_FABR={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_NDEVIS)), JD_REF_CLIENT),
if(Dimensionality()=1, aggr(NODISTINCT avg({<JD_NVARIANT_FABR={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_CODE_REP))))
),
(
if(Dimensionality()=3, aggr(NODISTINCT avg({<JD_NVARIANT_COMM={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL),JD_NDEVIS),
if(Dimensionality()=2, aggr(avg(aggr(NODISTINCT avg({<JD_NVARIANT_COMM={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_NDEVIS)), JD_REF_CLIENT),
if(Dimensionality()=1, aggr(NODISTINCT avg({<JD_NVARIANT_COMM={1}, JD_DATE=, JD_NDEVIS=P(JD_NDEVIS)>} JD_PX_TOTAL), JD_CODE_REP))))
)
)