3 Replies Latest reply: Dec 14, 2017 10:26 AM by Sébastien Fatoux RSS

    Afficher Total si aucune selection- QlikSense3.1

    thibault Mourichon

      Bonjour,

       

      Je suis entrain de réaliser un graphique comparatif année / année et /Mois en fonction de mes différentes entitées

      Mon souci actuel et que les dimensions suivante fonctionne MAIS je souhaiterais inclure que SI aucune donnée est sélectionné alors  le graphique m'affiche par défaut une courbe comparant les années entre elles.

       

      Actuellement ca fonctionne toutefois, si aucune donnée n'est sélection je n'ai pas de courbe mais des points

      points.png

       

      Dimension 1

      If(WildMatch(GetCurrentSelections([MandantName]), '*MandantName*') = 0

         OR

         WildMatch(GetCurrentSelections([ProjectManager]), '*ProjectManager*') = 0,

             If(WildMatch(GetCurrentSelections([AccountingEntryDetailPeriod.autoCalendar.Year]), '*Year*') = 1,

                  [AccountingEntryDetailPeriod.autoCalendar.Month],

                  [AccountingEntryDetailPeriod.autoCalendar.Year]

             ),

             If(WildMatch(GetCurrentSelections([AccountingEntryDetailPeriod.autoCalendar.Year]), '*Year*') = 1,

          [AccountingEntryDetailPeriod.autoCalendar.Month],

          [AccountingEntryDetailPeriod.autoCalendar.Year]

         )

      )

       

      Dimension 2

       

      If(WildMatch(GetCurrentSelections([MandantName]), '*MandantName*') = 0

         OR

         WildMatch(GetCurrentSelections([ProjectManager]), '*ProjectManager*') = 0,

             If(WildMatch(GetCurrentSelections([AccountingEntryDetailPeriod.autoCalendar.Year]), '*Year*') = 0,

                  [AccountingEntryDetailPeriod.autoCalendar.Month],

                  [AccountingEntryDetailPeriod.autoCalendar.Year]

             ),

             If(WildMatch(GetCurrentSelections([AccountingEntryDetailPeriod.autoCalendar.Year]), '*Year*') = 0,

          [AccountingEntryDetailPeriod.autoCalendar.Month],

          [AccountingEntryDetailPeriod.autoCalendar.Year]

         )

      )

       

      Mesure

       

      (Sum({$<[AccountingEntryDetailPeriod.autoCalendar.Year] =- {'2014', '>($(=Year(Today())))'}, AccountNr={'3000','3005','3006','3008','3009','3081'},

      AccountNrLvl1={'PL'},AccountingEntryDetailTypeCode-={'99'}>} AccountingEntryDetailAmountCHF))

       

       

      Si je supprime la dimension 2, cela fonctionne

      courbes.png

       

      comment faire pour garder le comparatif /Mois de N-1 comme cela ,

       

      courbes-mois.png

      mais avoir la courbe par année?

      courbes.png

       

      En vous remerciant

        • Re: Afficher Total si aucune selection- QlikSense3.1
          Sébastien Fatoux

          Déjà, l'utilisation de la fonction GetCurrentSelections() n'est pas correcte, tu ne peux pas passer un champ en paramètre ( voir GetCurrentSelections - fonction de graphique ‒ Qlik Sense )., mais il n'en tient visiblement pas compte.

           

          Essaye en utilisant la fonction GetSelectedCount() :

           

          Dimension 1

          If( GetSelectedCount([MandantName]) = 0 OR GetSeelctedCount([ProjectManager]) = 0,

                 If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) = 1,

                      [AccountingEntryDetailPeriod.autoCalendar.Month],

                      [AccountingEntryDetailPeriod.autoCalendar.Year]

                 ),

                 If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) = 1,

                      [AccountingEntryDetailPeriod.autoCalendar.Month],

                      [AccountingEntryDetailPeriod.autoCalendar.Year]

             )

          )

           

          Dimension 2

          If( GetSelectedCount([MandantName]) = 0 OR GetSeelctedCount([ProjectManager]) = 0,

                 If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) = 1,

                      [AccountingEntryDetailPeriod.autoCalendar.Year],

                      [AccountingEntryDetailPeriod.autoCalendar.Month]       ),

                 If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) = 1,

                      [AccountingEntryDetailPeriod.autoCalendar.Year],

                      [AccountingEntryDetailPeriod.autoCalendar.Month

             )

          )

           

           

          Par contre, je ne vois pas l'intérêt du 1er if, car que la condition soit correct ou non le même traitement est appliqué.

          On pourrait donc écrire simplement :

           

          Dimension 1

                 If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) = 1,

                      [AccountingEntryDetailPeriod.autoCalendar.Month],

                      [AccountingEntryDetailPeriod.autoCalendar.Year]

                 )

           

          Dimension 2

                 If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) = 1,

                      [AccountingEntryDetailPeriod.autoCalendar.Year],

                      [AccountingEntryDetailPeriod.autoCalendar.Month]     

                 )

          • Re: Afficher Total si aucune selection- QlikSense3.1
            thibault Mourichon

            Justement cette formule je l'avais testé avant et cela m'affiche les mois / année (ici chaque mois correspond à une courbe)

            reponseb.png

             

            et ce n'est pas du tout ce que je recherche, la fonction Wildmatch de mon 1er IF sert a dire que si aucune n'est sélectionner alors affiche la courbe annuelle, SI un année est sélectionnée alors affiche les mois  comme je disais a la base quand je n'ai qu'une seule dimension cela marche parfaitement....

             

            mon souci se porte dès le moment ou je mets une 2ème dimension...la je ne sais pas pourquoi les point restent (c'est top) mais la courbe elle disparaît, et c'est juste sur ce point la que je n'arrive pas à régler

             

            Merci

              • Re: Afficher Total si aucune selection- QlikSense3.1
                Sébastien Fatoux

                J'ai toujours pas compris ton 1 er if (If( GetSelectedCount([MandantName]) = 0 OR GetSeelctedCount([ProjectManager]) = 0) mais passons, c'est pas le problème principal.

                 

                Si une ou plusieurs Année sont sélectionées, tu veux voir l'évolution du CA par Mois pour chacune des années sélectionnées, dans ce cas on a besoin de 2 dimensions : Mois et Année.

                 

                Si aucune année n'est sélectionnée, tu veux simplement afficher l'évolution du CA par Année, dan sce cas on a besoin d'une seul dimension : Année

                 

                Essaie comme ceci :

                 

                Dimension 1

                       If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) >= 1,

                            [AccountingEntryDetailPeriod.autoCalendar.Month],

                            [AccountingEntryDetailPeriod.autoCalendar.Year]

                       )

                 

                Dimension 2

                       If( GetSelectedCount([AccountingEntryDetailPeriod.autoCalendar.Year]) >= 1,

                            [AccountingEntryDetailPeriod.autoCalendar.Year],

                            ''     

                       )