7 Replies Latest reply: Jun 5, 2015 4:01 AM by Jourdan Alexandre RSS

    Pivot chart

      Bonjour,

       

      Voila ce que j'ai :

      Capture.PNG

      Une première dimension temps, ensuite une dimension =if(...) qui contient une liste de source,

      puis en expressions, la distribution max on, off, pour cent de on et pour-cent de off.

       

      Petit problème, comme on peut le voir pour l'heure 0, la liste des sources ne s'affiche pas... Si j'en selectionne une son nom apparait, mais plusieurs j'obtiens le fameux : -

       

      Que dois-je faire, je suis bloqué la ?

       

      Cordialement.

        • Re: Pivot chart
          Henric Cronström

          Ça peut dépendre de ce que vous avez dans les paramètres de la fonction If(). Vous devez utiliser des agrégations ici, pas des références des champs directs.

           

          https://community.qlik.com/blogs/qlikviewdesignblog/2014/06/16/use-the-aggregation-functions

           

          HIC

            • Re: Pivot chart

              bonjour et merci de votre réponse,

               

              Ce n'est pas une fonction d’agrégation, j'ai =if (nameH like 'Neptune_*', nameH).

              Comment puis-je faire dans ce cas pour avoir pour chaque heure la liste de mes nameH ?

               

              edit :

              J'ai changé un peu le positionnement des colonnes / lignes.

              Capture.PNG

              Ma dimension avec =if (nameH like 'Neptune_*', nameH) affiche maintenant ma liste de nameH, mais les valeurs sont toutes a null.

              Pourtant si je met la formule dans une liste box a coté,et que je selectionne dans cette listbox j'ai des valeurs..

                • Re: Pivot chart
                  Henric Cronström

                  Je dois voir vos données pour répondre. Si je fais la même chose avec mes données générées, il fonctionne très bien.

                  Image2.png

                  (Ma réponse précédente n'était pas tout à fait correcte. Il aurait été pertinent si l'expression avait été une mesure et pas une dimension.)

                   

                  HIC

                    • Re: Pivot chart

                      Voici un screen de la requête qui reprend les données utilisées dans mon chart :

                      Capture.PNG

                      Lors du chargement j'effectue la même requête (sans les conditions) j'ai donc un tableau avec toutes mes infos comme présenter ci dessus dans qlikview

                       

                      Ma dimension

                      =if (hc_nameH='Neptune_*' and metric_nameH = '____'   and (service_descriptionH = 'NEP-____INPUTRATE' OR service_descriptionH = 'NEP-____-INPUTRATE' OR service_descriptionH like 'NEP-____-*INPUTRATE')

                      ,host_nameH)

                       

                      et mes deux expressions

                       

                      =round( max( aggr( sum({<metric_nameH = {_____}, service_descriptionH = {'NEP-____INPUTRATE', 'NEP-____-INPUTRATE'}>}avg_valueH)  ,dtimeH)  ),0.01)

                       

                      et

                       

                      =round(  max(  aggr(  sum({<metric_nameH = {_____}, service_descriptionH = {'NEP-_____-INPUTRATE'}>}avg_valueH)  ,dtimeH)  ),0.01)

                       

                      La je séche un peu, encore merci de votre aide !

                        • Re: Pivot chart
                          Xavier Retaillaud

                          Bonjour,

                           

                          Je ne sais pas si je comprend bien tout votre code mais si je subbodore bien :

                           

                          On ne peut pas utiliser de joker directement dans une comparaison.

                          => hc_nameH='Neptune_*' ne sera pas vrai pour ce qui commence 'Neptune_'.

                          => idem pour le _ s'il est sensé remplacer 1 caractère.

                           

                          En script de qlik if faut utiliser la fonction WildMatch() pour faire cela.

                          • * : joker pour une chaîne de caractères
                          • ? : joker pour un seul caractère

                          Exemple : if(WildMatch(NameField,'*pierre*'), 1, 0) renvoie 1 si NameField contient pierre, sinon renvoie 0.

                          NB : WildMatch n'est pas sensible à la casse des caractères. Je vous conseille de consulter l'aide pour cette fonction qui offre d'autres possibilités.

                           

                          Cordialement,

                          Xavier.

                          • Re: Pivot chart
                            Xavier Retaillaud

                            Idem, j'ai un doute sur la syntaxe des expressions:


                            =round( max( aggr( sum({<metric_nameH = {_____}, service_descriptionH = {'NEP-____INPUTRATE', 'NEP-____-INPUTRATE'}>}avg_valueH)  ,dtimeH)  ),0.01)

                             

                            En rouge : que voulez-vous obtenir ?

                            En bleu : est-ce que le underscore _ est utilisé comme un joker ?

                             

                            Xavier.

                              • Re: Pivot chart

                                Oups désolé pour la mésentente, j'ai mis les underscore pour cacher mes champs (close de confidentialité obligé).

                                Mon problème était tout béte en faite... Mon expression prend le max des sum des Neptune par heures. Alors que dans mon tableau j'affiche déja ses donnée par heures, en passant par un affichage par mois cela fonctionnait.

                                Du coup, maintenant je fais simplement un sum() et la donnée se précise en fonction de la dimension temps.

                                Je ne sais pas si je suis térs clair ^^ Mais merci a vous, expliquer mon probléme m'a aider a le comprendre