Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Dorothée
Contributor III
Contributor III

Courbe de cumul de pourcentage dans ungraphique combiné

Bonjour les experts,

Je bute sur le sujet d'une courbe qui exprimerai la valeur en pourcentage de l'efficience cumulée sur une période lié à une sélection par un datepicker.

Après un peu de lecture sur le sujet j'en suis arrivée à la conclusion qu'il fallait que j'utilise les fonctions d'aggrégation, de RangeSum et Above.

La formule que j'ai établi est la suivante

Sum(
aggr ( RangeSum( Above(
sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)/Sum({$<Equipe_Nom-={'0'}, [LabourTime.DirDor]={'0'}>} WorkTime),0,GetSelectedCount(Indicateur_Jour))) ,Indicateur_Jour)
)

Cependant le résultat n'est pas celui attendu

Dorothe_0-1707389992608.png

J'ai donc fait une tentative avec chaque terme de ma formule aggrégé :

Sum(
aggr ( RangeSum( Above(
sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)
,0,GetSelectedCount(Indicateur_Jour))) ,Indicateur_Jour)
/aggr ( RangeSum( Above(
Sum({$<Equipe_Nom-={'0'}, [LabourTime.DirDor]={'0'}>} WorkTime)
,0,GetSelectedCount(Indicateur_Jour))) ,Indicateur_Jour)
)

Dorothe_1-1707390150151.png

 

mais là encore le résultat n'est pas satisfaisant.
Quelqu'un aurait-il une piste svp ?
Un grand merci par avance au temps et à l'énergie que vous consacrerez à m'aider.

Labels (2)
1 Solution

Accepted Solutions
Dorothée
Contributor III
Contributor III
Author

Bonjour,

J'ai finalement réussi à solutionner mon problème. Avec des courbes de cumul cohérentes. Et pas besoin de la fonction aggr, ce qui m'étonne encore !

Dorothe_0-1712225888214.png

La formule permettant d'y arriver est la suivante :

RangeSum(
Above(
sum({$<Efficience_TempsDeTravailHumainEnSecondes-={0}>} Declaration_Quantite*Efficience_TempsDeTravailHumainEnSecondes/3600)
,0,(sum($(=max(Indicateur_Jour_NUM)) - $(=min(Indicateur_Jour_NUM)))+1))
)
/

RangeSum(
Above(
Sum({$<Equipe_Nom-=, [TempsDeTravail_DirDor]={'0'}>} TempsDeTravail_Duree)
,0,(sum($(=max(Indicateur_Jour_NUM)) - $(=min(Indicateur_Jour_NUM)))+1))
)

Autrement formulé

RangeSum(
Above(
Sum( Temps de travail standard ou heures théoriques)
,0,nb de dates du plus petit au plus grand des indicateurs sélectionnés )
)

/

RangeSum(
Above(
Sum( Temps de travail effectif ou heures réellement travaillées)
,0,nb de dates du plus petit au plus grand des indicateurs sélectionnés )
)

Espérant que cela puisse aider d'autres qui aurait un casse-tête similaire.

Belle journée à vous.

View solution in original post

4 Replies
brunobertels
Master
Master

Bonjour 

 

Peut être quelque chose comme çà : 

 

Pour la première mesure :

 

Sum(
aggr ( RangeSum( Above(
sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)/Sum({$<Equipe_Nom-={'0'}, [LabourTime.DirDor]={'0'}>} WorkTime),0,rowno(TOTAL))) ,Indicateur_Jour)
)

la seconde 

Sum(
aggr ( RangeSum( Above(
sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)
,0,rowno(TOTAL))) ,Indicateur_Jour)
/aggr ( RangeSum( Above(
Sum({$<Equipe_Nom-={'0'}, [LabourTime.DirDor]={'0'}>} WorkTime)
,0,rowno(TOTAL))) ,Indicateur_Jour)
)

 

A essayer aussi juste rowno() sans le total pour voir ... 

Dorothée
Contributor III
Contributor III
Author

Bonjour,
Merci pour votre réponse.
J'ai dû mal m'exprimer car je n'ai besoin que d'une formule, celle de la courbe cumulé et j'ai testé vos 2 formules sans succès.

Merci quand même pour le temps passé.

Cordialement

 

 

brunobertels
Master
Master

Bonjour Dorothée, 

Tu l'a surement déjà fait mais peut être faut il tester chaque mesure séparément dans un premier temps 

dimension

Indicateur_Jour

Mesures : 

M1 : sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)

M2 : rangesum(above(

sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)

,0,rowno()

))

 

M3 :

rangesum(above(

sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)

,0,rowno()

))

/

rangesum(above(

Sum({$<Equipe_Nom-={'0'}, [LabourTime.DirDor]={'0'}>} WorkTime)

,0,rowno()

))

 

Voire M 4 la même que M3 mais agrégé par jour : 

sum(aggr(

rangesum(above(

sum({$<LabourTimeValeurStd-={0}>} Declaration_Quantite*LabourTimeValeurStd/10000)

,0,rowno()

))

/

rangesum(above(

Sum({$<Equipe_Nom-={'0'}, [LabourTime.DirDor]={'0'}>} WorkTime)

,0,rowno()

))

, Indicateur_Jour ) )

Dorothée
Contributor III
Contributor III
Author

Bonjour,

J'ai finalement réussi à solutionner mon problème. Avec des courbes de cumul cohérentes. Et pas besoin de la fonction aggr, ce qui m'étonne encore !

Dorothe_0-1712225888214.png

La formule permettant d'y arriver est la suivante :

RangeSum(
Above(
sum({$<Efficience_TempsDeTravailHumainEnSecondes-={0}>} Declaration_Quantite*Efficience_TempsDeTravailHumainEnSecondes/3600)
,0,(sum($(=max(Indicateur_Jour_NUM)) - $(=min(Indicateur_Jour_NUM)))+1))
)
/

RangeSum(
Above(
Sum({$<Equipe_Nom-=, [TempsDeTravail_DirDor]={'0'}>} TempsDeTravail_Duree)
,0,(sum($(=max(Indicateur_Jour_NUM)) - $(=min(Indicateur_Jour_NUM)))+1))
)

Autrement formulé

RangeSum(
Above(
Sum( Temps de travail standard ou heures théoriques)
,0,nb de dates du plus petit au plus grand des indicateurs sélectionnés )
)

/

RangeSum(
Above(
Sum( Temps de travail effectif ou heures réellement travaillées)
,0,nb de dates du plus petit au plus grand des indicateurs sélectionnés )
)

Espérant que cela puisse aider d'autres qui aurait un casse-tête similaire.

Belle journée à vous.