Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
MauriceLudo
Not applicable

Graphe empilé

Bonjour,

je n'arrive pas à afficher mon graphe empilé correctement, quelqu'un peut m'aider s'il vous plait .

dimension : semaine,jour , mois , nomjour

l'espression quatre :

=  if(CPSS='Certificats',

              num(sum({< [CPSS]={'Certificats'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])/sum({< [CPSS]={'Cartes & Certificats'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]),'00,##%'),

              

             if(CPSS='MSS',

                      num(sum({< [CPSS]={'MSSanté'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])/sum({< [CPS/MSS]={'MSS'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]),'00,##%'),

                      if(CPSS='E-DO (produit)',

                      num(sum({< [CPSS]={'E-DO (produit)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])/sum({< [CPSS]={'E-DO (produit)'}>}TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]),'00,##%'),

                      if(CPSS='E-DO (service)',

                     num(sum({< [CPSS]={'E-DO (service)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])/sum({< [CPS]={'E-DO (service)'}>}TOTAL <Mois , Semaine, Jour, NomJour>  [APPELS PRIS]),'00,##%'),0))))

    

                         //  num(count({$<Ressenti={'4 - Satisfait','5 - Très satisfait'}>} Ressenti) / count({$<Ressenti={"*"}>}Ressenti),'00,##%')))))

pour 30s,60s.90s et plus

ci-joint capture écran

Cordialement

Maurice

Tags (1)
11 Replies
sfatoux72
Not applicable

Re: Graphe empilé

Pourrais-tu préciser ce qui pour toi ne vas pas?

Car juste en voyant ton expression, je vois déjà plein de chose étrange, mais ne sachant pas quel est le problème à chercher.

Les points qui me semblent étranges dans ton expression sont les suivants:

=  if(CPSS='Certificats',

    num( sum({< [CPSS]={'Certificats'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

         /   sum({< [CPSS]={'Cartes & Certificats'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]), '00,##%'),

    if(CPSS='MSS',

        num( sum({< [CPSS]={'MSSanté'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

              /  sum({< [CPS/MSS]={'MSS'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]), '00,##%'),

         if(CPSS='E-DO (produit)',

             num( sum({< [CPSS]={'E-DO (produit)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

                   /  sum({< [CPSS]={'E-DO (produit)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]),  '00,##%'),

             if(CPSS='E-DO (service)',

                 num( sum({< [CPSS]={'E-DO (service)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

                       /  sum({< [CPS]={'E-DO (service)'}>}TOTAL <Mois , Semaine, Jour, NomJour>  [APPELS PRIS]),'00,##%'),0))))

                 //  num(count({$<Ressenti={'4 - Satisfait','5 - Très satisfait'}>} Ressenti) / count({$<Ressenti={"*"}>}Ressenti),'00,##%')))))

  • En bleu, inconsistance entre les différentes valeur du champ CPSS
  • En vert,  inconsistance entre les différentes valeur du champ CPSS
  • En rouge, une fois tu n'utilise pas le champ CPSS, mais CPS
  • En orange, si tu commentes ainsi, tu commentes les parenthèses fermantes des if

Questions:

  • Est-ce possible que plus d'une valeur de CPSS soit sélectionné?
  • Combien y a-t-il de valeur distincte de CPSS?
  • Pourquoi pour CPSS distinguer Certificats, MSS, E-DO (produit), E-DO (service) et les autres ?
MauriceLudo
Not applicable

Re: Graphe empilé

Merci Sébastien,

voici la bonne expression,

=  if(CPSS='Certificats',

    num( sum({< [CPSS]={'Certificats'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

         /   sum({< [CPSS]={'Certificats'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]), '00,##%'),

    if(CPSS='MSS',

        num( sum({< [CPSS]={'MSS'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

              /  sum({< [CPSS]={'MSS'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]), '00,##%'),

         if(CPSS='E-DO (produit)',

             num( sum({< [CPSS]={'E-DO (produit)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

                   /  sum({< [CPSS]={'E-DO (produit)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [APPELS PRIS]),  '00,##%'),

             if(CPSS='E-DO (service)',

                 num( sum({< [CPSS]={'E-DO (service)'}>} TOTAL <Mois , Semaine, Jour, NomJour> [<-30sec NB])

                       /  sum({< [CPSS]={'E-DO (service)'}>}TOTAL <Mois , Semaine, Jour, NomJour>  [APPELS PRIS]),'00,##%'),0))))


ce que ne vas pas le pourcentage , en sachant j'ai 4 expression :

- 1 exp pour le NB 30s

- 1 exp pour le NB 60s

- 1 exp pour le NB 90s

- 1 exp pour le NB > 90s

je voudrais l'afficher dans un graphe empilé pour les quartes valeurs

Merci

sfatoux72
Not applicable

Re: Graphe empilé

Je suppose que :

APPELS PRIS = NB 30s + NB 60s + NB 90s + NB > 90s

Si c'est bien le cas c'est impossible d'avoir des données négatives comme présente dans ton graphe.

Cela signifie donc que la répartition de appels pris dans les différentes catégories n'est pas faite correctement.

Si ce n'est pas le cas, cela peux peut-être expliquer les valeurs négatives, mais c'est certain que le résultat ne peut pas être correcte.

Pour avoir une une somme des pourcentage égale à 100%, il faut que la somme des parties soit égale au tout.

MauriceLudo
Not applicable

Re: Graphe empilé

oui Appels pris est la somme de nombre des appels décrochés en -30s, -60s,..et de appels pris sont repartie correctement, mais je ne sais pas d'ou ca viens le souci pourtant j'utilise la même expression dans d'autres est graphe et ça marche bien.

sfatoux72
Not applicable

Re: Graphe empilé

Je ne pense pas pouvoir déterminer le problème sans l'application.

Peux-tu nous transmettre une application avec ce graphe et les données nécessaires.

MauriceLudo
Not applicable

Re: Graphe empilé

Voici l'appli

sfatoux72
Not applicable

Re: Graphe empilé

Pour moi, le problème vient des données.

J'ai fait une zone de table avec les champs suivant de la table Appel:

  • <-30sec NB
  • <-60sec NB
  • <-90sec NB
  • APPELS PRIS
  • 60 sec NB
  • 90 sec NB

Les champs en vert viennent de différents fichiers, mais je ne trouve aucune trace des champs en orange dans le script de chargement. Je suppose qu'ils sont calculés sur la base des champs en vert.

J'en ai déduit les règles suivantes:

  • Le champs <-60sec NB est toujours plus grand que <-30sec NB car il le contient.
  • Le champs <-90sec NB est toujours plus grand que <-60sec NB car il le contient.
  • Le champs APPELS PRIS est toujours plus grand que <-90sec NB car il le contient.
  • Le champs 60 sec NB correspond à la différence entre <-60sec NB et <-30sec NB
  • Le champs 90 sec NB correspond à la différence entre APPELS PRIS et <-90sec NB

J'ai confirmé ces règles avec une petite table et quelques expression:

  • count([APPELS PRIS])
  • Sum(if([<-30sec NB] <= [<-60sec NB], 1, 0))
  • Sum(if(Alt([<-60sec NB],0) <= Alt([<-90sec NB],0), 1, 0))
  • Sum(if(Alt([<-90sec NB],0) <= Alt([APPELS PRIS],0), 1, 0))
  • Sum(if(Alt([<-60sec NB],0) <= [APPELS PRIS], 1, 0))
  • Sum(if((Alt([<-60sec NB],0) - Alt([<-30sec NB],0)) = [60 sec NB], 1, 0))
  • Sum(if((Alt([APPELS PRIS],0) - Alt([<-90sec NB],0)) = [90 sec NB], 1, 0))

Community_1103944_1.png

Je pense que le champ <-90sec NB n'est pas rempli correctement dans tous les fichiers sources.

  • Il contient des fois NULL
  • Il contient des fois des nombre à virgule
  • Il contient des fois des valeur supérieures à APPELS PRIS

Community_1103944_2.pngCommunity_1103944_3.png

Pour les identifier les fichiers sources à vérifier, ajoute dans ton script (onglet Appels) le champ FileName as Source et ajoute ce champ à la zone de table ci-dessus. le problème doit être limité à un ou 2 fichiers.

MauriceLudo
Not applicable

Re: Graphe empilé

oui, j'ai déja identifier l'erreur pour le mois décembre la condition

  • Le champs APPELS PRIS est toujours plus grand que <-90sec NB car il le contient.n'est pas exacte j'ai remonté l'info et j'attends les nouvelles données
  • pour les champs en orange correspond bien à la différence, ils sont calculé dans le script de modèle.

du coup il fait que je corrige les données avant?

sfatoux72
Not applicable

Re: Graphe empilé

Il n'a pas que décembre qui pose problème, les mois de janvier 2016 à août 2016 posent également problème:

Community_1237320_1.png

On peut voir que pour la semaine 1, le champ <-90sec NB est NULL pour la moitié des lignes. Il est alors impossible de déterminer comment répartir la différence entre <-60sec NB et APPELS PRIS sur les appels supérieurs à 90 secondes et les appels entre 60 et 90 secondes. D'ailleurs, le champ 90 sec NB calculé dans le script de chargement est également NULL.

C'est les cas pour tous les mois de janvier à août.

Il faut que tu vérifie toutes tes données. Les règles doivent toujours être valide.

Et que des corrections soit apportées ou si ce n'est pas possible que des règles soit appliquées au chargement des données.

Tu trouveras en pièce jointe une version light de ton application (1 semaine de données) avec les objet ci-dessus et également une version du graphique simplifiée ne se basant que sur les champs de base (en vert dans mes messages).

Il faut simplement créer une nouvelle feuille dans ton appli et y copier tous les objets.

Je te laisse découvrir les simplifications effectuées sur le graphe ;-)

Une règle a été définie qui dans le cas où est <-90sec NB NULL on prend la valeur de <-60sec NB pour les calculs, ce qui a pour effet d'avoir un NB 90 s à 0 est toutes la différence sur > NB 90 s