Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je viens vers vous car j'ai un soucis de calcul.
Pour faire simple, j'ai un tableau simple avec :
En dimension :
- Code Article
En expression :
- CA Annuel
- CA Annuel N-1
- Volume Annuel
- Volume Annuel N-1
- Filter : Si les 4 expressions précédentes sont >0 alors 'COMMON' sinon 'NO')
En suite c'est là que ça se gâte, les autres expressions :
- CA Annuel N-1 Common : Si Filter = 'Common' alors CA Annuel N-1, sinon 0
Le calcul s'effectue correctement, mais le total de l'expression est faux. Je suis obligé de sélectionne "Somme de ligne" pour avoir un total correct.
Le problème qui m'est posé, c'est que lorsque j'utilise cette expression dans d'autres formules, il utilise "Total de l'expression" et non "Somme de ligne" comme valeur...Donc les résultats sont faux.
Avez vous une solution pour m'aider ?
Merci d'avance
Dans ton cas il faudra que tu utilises une fonction
sum(aggr(...., "niveau de calcul le plus bas"))
pour que ta formule soit réutilisable ailleur que dans un tableau.
Ça ne fonctionne pas, mais je n'utilise peut être pas correctement la formule...
Dimension :
- Code Article
Expressions :
To = sum({<ANNEE={$(vMaxYear)},DATSTAT={'<=$(vMaxDate)'},MOIS=>}HTSTAT)
To Prior =sum({<ANNEE={$(vMaxYearN1)},DATSTAT={'<=$(vMaxDateN1)'},MOIS=>}HTSTAT)
Volume = sum({<ANNEE={$(vMaxYear)},DATSTAT={'<=$(vMaxDate)'},MOIS=>}KLUMSTAT)
Volume Prior = sum({<ANNEE={$(vMaxYearN1)},DATSTAT={'<=$(vMaxDateN1)'},MOIS=>}KLUMSTAT)
Filter = if(To>0 and [To Prior]>0 and Volume>0 and [Volume Prior]>0,'COMMON','NO')
To Prior Common = if(filter='COMMON',[To Prior],0)
Et c'est ce To Prior Common que je souhaiterai réutiliser correctement par la suite.
J'ai essayé : sum(aggr(if(filter='COMMON',[To Prior],0),[Code Article]))
Mais ça ne me renvoi que des 0...
J'ai trouvé pourquoi je n'avais que des 0, c'est les formules complètes que je dois mettre.
Ça me renvoie les chiffres, mais je n'ai toujours pas le bon résultat...
j'aurai essayé avec
sum(aggr(sum(if(filter='COMMON',[To Prior],0)),[Code Article]))
J'ai essayé, mais je n'ai que des 0 car filter etc ce sont déjà des colonnes calculées.
J'ai donc mis le complet :
sum(aggr(if(sum({<ANNEE={$(vMaxYear)},DATSTAT={'<=$(vMaxDate)'},MOIS=>}HTSTAT)>0 and sum({<ANNEE={$(vMaxYearN1)},DATSTAT={'<=$(vMaxDateN1)'},MOIS=>}HTSTAT)>0 and sum({<ANNEE={$(vMaxYear)},DATSTAT={'<=$(vMaxDate)'},MOIS=>}KLUMSTAT)>0 and sum({<ANNEE={$(vMaxYearN1)},DATSTAT={'<=$(vMaxDateN1)'},MOIS=>}KLUMSTAT)>0,sum({<ANNEE={$(vMaxYearN1)},DATSTAT={'<=$(vMaxDateN1)'},MOIS=>}HTSTAT),0),CARTSAP))
CARTSAP étant ma dimension Code Article.
Je n'ai plus de 0, mais les bons chiffres. Le total par contre est faux.
J'ai creusé et trouvé dans le tableau certaines lignes qui se mettent à 0, alors qu'elles ne devraient pas, puisque les conditions sont remplies (> 0)...
Ca fonctionne !
J'ai ajouté {<MOIS=>} juste avant le aggr et ça passe correctement !