Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Afficher Total si aucune selection- QlikSense3.1

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

3 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

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]     

       )

Anonymous
Not applicable
Author

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

sfatoux72
Partner - Specialist
Partner - Specialist

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],

            ''     

       )