21 Replies Latest reply: Oct 13, 2017 10:27 AM by Axel Beaugrand RSS

    Demande de formule de calcul pour une jauge

    Axel Beaugrand

      Bonjour à tous,

       

      Je suis débutant sur Qlik et je me fais la main sur une base GLPI. J’ai beau essayer plusieurs fonction, je suis bloqué après plusieurs test, j’aurai besoin d’une âme charitable svp.

       

      Explication de ma problématique :

      Je souhaite calculer le pourcentage de tickets résolus en une journée.

      Mon action : prendre les nombres totaux des tickets, enlever le nombre des tickets supprimés étant donné que l’administrateur supprime des tickets et ensuite les trier pour une résolution en une journée sur une table qui affiche la date de création des tickets ;

       

      Résumer de ma Base :

      TIC_DATE_CREATION = date de création des tickets = au format date

      TIC_ID = nombre de ticket = numéro 1 à 10 000

      TIC_SUPPRIME = Type de ticket supprimé = résultat binaire (Ticket conservé = 0, Ticket supprimé =1)

       

      Pour le moment je suis à cela dans mon expression :

      Je coince sur le tri de la date, fonction if … 

       

      Count(TIC_ID)-Count(TIC_SUPPRIME)/100

       

      Merci d'avance de votre aide

       

       

        • Re: Demande de formule de calcul pour une jauge
          Kevin Chevrier

          Bonjour,

           

          Pour la formule, je mettrais plutôt :

          Count({$ <TIC_SUPPRIME-= {'1'}>}TIC_SUPPRIME)/Count(TIC_ID)


          Ceci me parait plus correct que de diviser par 100.


          Ensuite je ne comprends pas ta notion de tri sur la date. Peux-tu nous donner un exemple ?


          Kevin

            • Re: Demande de formule de calcul pour une jauge
              Axel Beaugrand

              Bonjour Kevin, en te remerciant de ta réactivité ...

               

              Je m'explique chaque ticket crée une date qui est elle même reporter sur une table calendrier que j'ai crée par rapport au ticket. Voici un le schéma de mes tables ci dessous :

               

              MCD.PNG

               

              Le problème c'est que le champs ticket résolu en une journée n'existe pas je l'ai tout simplement créer par cette formule :

               

              if(isnull(date),'Sans date de création',if (isnull(solvedate),'Non Résolu',if (solvedate - date <1, 'Traité en 1 Journée', if (solvedate - date<2, 'Traité entre 1 et 2 jours', 'Traité entre 2 jours et +')))) AS TIC_TRAITEMENT

               

              Cela me permet de faire un tri sur mes tickets résolus mais du coup je ne sais pas comment reprendre les résultats de cette formule pour la reporter le taux de pourcentage de ticket résolu en 1 journée.

              J'espère avoir été claire ...

                • Re: Demande de formule de calcul pour une jauge
                  Kevin Chevrier

                  Bonjour,

                   

                  Très certainement grâce à une aggrégation du type :

                   

                  =aggr(Count({$ <TIC_SUPPRIME-= {'1'}>}TIC_SUPPRIME)/Count(TIC_ID),solvedate)

                   

                  Kevin

                    • Re: Demande de formule de calcul pour une jauge
                      Axel Beaugrand

                      Merci Kevin de ton aide.

                       

                      J'ai une petite chose encore à te demander serait il possible que tu t'abonnes à mon profil stp pour que je puisse te parler en privé.

                      Très bonne journée,

                       

                      Axel

                      • Re: Demande de formule de calcul pour une jauge
                        Axel Beaugrand

                        Petit problème : 

                        j'ai la syntaxe qui n'est pas accepté dans mon expression, solvedate = TIC_RESOLU

                        Mais quand je change la syntaxe ca ne fonctionne pas tu as une idée ?

                          • Re: Demande de formule de calcul pour une jauge
                            Kevin Chevrier

                            En fait, je ne comprend pas d'où provient ton solvedate car il n'est pas dans ton modèle.

                             

                            Il faut peut-être faire l'aggrégation par date de création dans ce cas ?

                             

                            =aggr(Count({$ <TIC_SUPPRIME-= {'1'}>}TIC_SUPPRIME)/Count(TIC_ID),TIC_DATE_CREATION)


                            Kevin

                              • Re: Demande de formule de calcul pour une jauge
                                Axel Beaugrand

                                Je passe en privé ca sera plus simple des qu'on aura la réponse je la mettrai en te remerciant KEVIN

                                  • Re: Demande de formule de calcul pour une jauge
                                    Axel Beaugrand

                                    Pour pouvoir vous faire bénéficier de mon problème je vous joins la réponse en privé il est vrai qu'il est plus envisageable de partager l'évolution suggestion de Kevin que je comprends totalement je voulais éviter nos réponses en 'PING PONG' ...

                                     

                                    Kevin

                                    J'ai pris TIC_DATE_CREATION que tu mentionnais dans ton ticket. Effectivement, tu ne l'as pas dans ton visionneur. Dans l'aggrégation il faut que tu changes TIC_DATE_CREATION par le champ qui fait référence à la date que tu veux. TIC_RESOLU est une date ? Vérifie que tout est bien au même format. Sinon, n'hésite pas à upload ton application sur ton ticket. C'est toujours plus façile pour t'aider comme chaque environnement est différent. Kevin.

                                      • Re: Demande de formule de calcul pour une jauge
                                        Axel Beaugrand

                                        Pour te répondre effectivement tu as raison :

                                        TIC_DATE_CREATION = TIC_CREE format 'DD/MM/YYYY HH:mm:ss'

                                        solvedate = TICKET_RESOLU format  'DD/MM/YYYY'

                                         

                                        En te remerciant d'avance de ton aide,

                                        Bonne ap

                                          • Re: Demande de formule de calcul pour une jauge
                                            Kevin Chevrier

                                            Tu as la possibilité de mettre ton application ?

                                             

                                            Kevin

                                              • Re: Demande de formule de calcul pour une jauge
                                                Axel Beaugrand

                                                Tu veux dire en lien ?

                                                  • Re: Demande de formule de calcul pour une jauge
                                                    Kevin Chevrier

                                                    Quand tu cliques sur "répondre", tu vas ensuite sur "Utiliser l'éditeur avancé" en haut à droite de ton message, puis "Joindre" en dessous ton texte.

                                                    • Re: Demande de formule de calcul pour une jauge
                                                      Axel Beaugrand

                                                      Voici ma table ticket :

                                                       

                                                      ***************************************************************************************************************************************

                                                      TICKETS:
                                                      LOAD
                                                      entities_id  AS @TIC_ENTITE_ID,
                                                      id AS @SATIS_ID,
                                                      id AS @TIC_TAC__TECH_ID,
                                                      id AS @TIC_UTIL_ID,
                                                      id AS TIC_ID,
                                                      entities_id AS TIC_ENTITE_ID,
                                                      name AS TIC_NOM,
                                                      users_id_lastupdater AS TIC_USERS_ID_LASTUPDATER,
                                                      status AS TIC_STATUS,
                                                      is_deleted AS TIC_SUPPRIME,
                                                      solvedate - date AS TIC_DUREE,
                                                      content AS TIC_COM_RETOUR,

                                                      DATE(date, 'DD/MM/YYYY HH:mm:ss') AS @CAL_DATE,
                                                      DATE(date, 'DD/MM/YYYY HH:mm:ss') AS TIC_CREE,
                                                      DATE(closedate, 'DD/MM/YYYY') AS TIC_FERME,
                                                      DATE(solvedate, 'DD/MM/YYYY HH:mm:ss') AS TIC_RESOLU,
                                                      DATE(date_mod, 'DD/MM/YYYY') AS TIC_DATE_MOD,

                                                      Year(date) AS TIC_ANNEE_CREATION,
                                                      Month(date) AS TIC_MOIS_CREATION,
                                                      Num(Day(date)) AS TIC_JOUR_CREATION,
                                                      Num(weekday(date)) AS TIC_JOURSEMNUM_CREATION,

                                                      if(isnull(date),'Sans date de création',if (isnull(solvedate),'Non Résolu',if (solvedate - date <1, 'Traité en 1 Journée', if (solvedate - date<2, 'Traité entre 1 et 2 jours', 'Traité entre 2 jours et +')))) AS TIC_TRAITEMENT,
                                                      if(is_deleted=0,'Conservé','Supprimé') AS TIC_TYPE

                                                       

                                                      ***************************************************************************************************************************************

                                                       

                                                      Je travail sur serveur et puis j'ai des données quand même confidentiel sur cette base je pourrai donc pas la partagé mais le script montre le problème je pense ..

                                                       

                                                       

                                                      J'ai changé le format de date résolu et changé la formule par celle ci et ca ne marche toujours pas :

                                                      =aggr(Count({$ <TIC_SUPPRIME-= {'0'}>}TIC_SUPPRIME)/Count(TIC_ID),TIC_CREE)

                                                       

                                                      Après réflexion je me dis que j'ai pas forcement besoin de sélectionner les tickets qui ne sont pas supprimé vu que j'ai un champs dans mon application qui me permets d'effectuer la sélection.

                                                       

                                                       

                                                      Voici l'affichage de la fenêtre principal de mon app : TIC_TYP m'affiche donc les tickets supprimé ou conservé

                                                      Fenetre principal GLPI.PNG

                                                      J'ai caché le champs filiales pour des raisons de confidentialité, ce que je veux faire :

                                                       

                                                      Calculé le taux de ticket résolu en une journée et je veux que la jauge évolue lors de la sélection de l'utilisateur admettons lors de son utilisation : Il sélectionne année 2017 mois, puis Aout, puis le nom de filiale, puis les tickets supprimé (par rapport à sa sélection je souhaite que la jauge évolue).

                                                      Jspr avoir était claire ... En te remerciant d'avance

                                                        • Re: Demande de formule de calcul pour une jauge
                                                          Kevin Chevrier

                                                          Pour l'aggrégation, je te conseille de créer un nouveau champ dans ton script ;

                                                          DATE(solvedate, 'DD/MM/YYYY') AS TIC_RESOLU_AGGR,

                                                          Et utiliser ce champ pour ton aggrégation. L'aggrégation te permet de calculer par regroupement. Or si tu laisse les heures et les minutes ça ne peut pas marcher.


                                                          Kevin

                                                            • Re: Demande de formule de calcul pour une jauge
                                                              Axel Beaugrand

                                                              Très bien donc une fois que j'ai effectué ce champs sur mon expression que dois je changer dans la formule initiale a part le nom du champ :

                                                               

                                                              =aggr(Count({$ <TIC_SUPPRIME-= {'1'}>}TIC_SUPPRIME)/Count(TIC_ID),TIC_RESOLUAGGR)

                                                               

                                                              Par ce que cette formule ne fonctionne pas ...

                                                               

                                                              Le champ m'affiche 1

                                                                • Re: Demande de formule de calcul pour une jauge
                                                                  Kevin Chevrier

                                                                  Peux-tu partager ton application ?

                                                                   

                                                                  Si non, je ne comprends pas ton problème.

                                                                   

                                                                  Kevin

                                                                    • Re: Demande de formule de calcul pour une jauge
                                                                      Axel Beaugrand

                                                                      Je m'excuse si il te manque des éléments, pour des raisons de confidentialité, je ne pourrai pas te donner l'application..

                                                                       

                                                                      Si quelqu'un a une réponse se serait super en vous remerciant d'avance ..

                                                                       

                                                                       

                                                                      N'hésitez pas si vous avez des questions

                                                                        • Re: Demande de formule de calcul pour une jauge
                                                                          Christophe Brault

                                                                          Bonjour,


                                                                          Pour plus de facilité, sépare tes dates et tes heures dans les champs. la fonction floor() et Hour() te fait ça.

                                                                          Ja rajoute dans ta table en gras les champs que tu veux pour le calcul du nombre de résolu dans la journée sur le total de ticket créé



                                                                          TICKETS:
                                                                          LOAD
                                                                          entities_id  AS @TIC_ENTITE_ID,
                                                                          id AS @SATIS_ID,
                                                                          id AS @TIC_TAC__TECH_ID,
                                                                          id AS @TIC_UTIL_ID,
                                                                          id AS TIC_ID,
                                                                          entities_id AS TIC_ENTITE_ID,
                                                                          name AS TIC_NOM,
                                                                          users_id_lastupdater AS TIC_USERS_ID_LASTUPDATER,
                                                                          status AS TIC_STATUS,
                                                                          is_deleted AS TIC_SUPPRIME,
                                                                          solvedate - date AS TIC_DUREE,
                                                                          content AS TIC_COM_RETOUR,

                                                                          DATE(date, 'DD/MM/YYYY HH:mm:ss') AS @CAL_DATE,
                                                                          DATE(date, 'DD/MM/YYYY HH:mm:ss') AS TIC_CREE,
                                                                          DATE(closedate, 'DD/MM/YYYY') AS TIC_FERME,

                                                                          DATE(Floor(date) as DateCréation,

                                                                          if(Floor(solvedate)=Floor(date)),1,0) as Flag_Resolu_Day,
                                                                          DATE(solvedate, 'DD/MM/YYYY HH:mm:ss') AS TIC_RESOLU,
                                                                          DATE(date_mod, 'DD/MM/YYYY') AS TIC_DATE_MOD,

                                                                          Year(date) AS TIC_ANNEE_CREATION,
                                                                          Month(date) AS TIC_MOIS_CREATION,
                                                                          Num(Day(date)) AS TIC_JOUR_CREATION,
                                                                          Num(weekday(date)) AS TIC_JOURSEMNUM_CREATION,

                                                                          if(isnull(date),'Sans date de création',if (isnull(solvedate),'Non Résolu',if (solvedate - date<1, 'Traité en 1 Journée', if (solvedate - date<2, 'Traité entre 1 et 2 jours', 'Traité entre 2 jours et +')))) AS TIC_TRAITEMENT,
                                                                          if(is_deleted=0,'Conservé','Supprimé') AS TIC_TYPE


                                                                          Dans ton graph, en dimension DateCréation et pour l'expression :


                                                                          Count(distinct {$<Flag_Resolu_Day={1}>}TIC_ENTITE_ID)/Count(distinct TIC_ENTITE_ID)

                                                                            • Re: Demande de formule de calcul pour une jauge
                                                                              Axel Beaugrand

                                                                              Bonjour Christophe après avoir testé je comprends pas ta formule pour le coup je suis parvenu a afficher ce que je souhaitais en réalisant cette expression :

                                                                              =sum(TIC_RESOLU_1_JOURNEE)/sum(SOMME_TIC_RESOLUS)*100

                                                                               

                                                                              Cela me donne le bon résultat, j'ai vérifier avec plusieurs résultats.

                                                                               

                                                                              ar ailleurs, par curiosité j'ai essayé de tester ta version mais elle ne fonctionne pas, la deuxième ligne est souligné en rouge.

                                                                              La syntaxe n'est pas accepter peut être il doit peut être manquer une parenthèse ou virgule ..

                                                                              if(Floor(solvedate)=Floor(date)),1,0) as Flag_Resolu_Day,

                                                                               


                                                                              Count(distinct {$<Flag_Resolu_Day={1}>}TIC_ENTITE_ID)/Count(distinct TIC_ENTITE_ID)

                                                                               

                                                                               

                                                                              S'il serait possible juste de m'expliquer ce que fait ces lignes se serait super en te remerciant d'avance de ton aide Bonne fin de journée,

                                                                              Axel .

                                                                                • Re: Demande de formule de calcul pour une jauge
                                                                                  Christophe Brault

                                                                                  J'ai mis une parenthèse de trop dans le if sur le Floor(date) :

                                                                                   

                                                                                  if(Floor(solvedate)=Floor(date)),1,0) as Flag_Resolu_Day,


                                                                                  L'expression utilise un set analysis pour diviser le nombre de ticket résolu dans la journée (date de résolution = date de création) pas le nombre total de ticket.

                                                                                   

                                                                                  Cela évite de recalculer ton indicateur comme tu semble le faire dans le script.

                                                                                   

                                                                                  Après ma compréhension de ton besoin n'était sans doute pas la bonne.

                                                                                   

                                                                                  Pour info, tu peux "brouiller" un ou plusieurs champs de ton application pour la partager en anonymisant les données sensibles. Ou alors tu enlève les dimensions comprenant les noms.

                                                                                  C'est beaucoup plus simple pour la communauté pour comprendre et tester les solutions aux questions.

                                                                                   

                                                                                  Bonne continuation