Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je dois réaliser dans Qlik Sense ce genre de tableau (évolution des prix par rapport au quantité) :
Exemple de données sources :
J'avais pensé le faire avec une Pivot Table, mais mon problème est que le prix dois apparaitre non sommer et il peux y avoir plusieur prix pour une même quantité.
Avez-vous des ideés ?
Merci d'avance
Bonjour
Est ce que quelque chose comme çà te conviendrait ? :
Si oui une fois chargé tes données
Dans un TCD
En dimension ITEM ( ligne )
En colonne : Year
Puis les formules suivantes
Quantité P1
Sum({<Prix={'$(=min(Prix,1))'}>}[Qté recue])
Prix P1
only({<Prix={'$(=min(Prix,1))'}>}Prix)
Quantité P2
Sum({<Prix={'$(=min(Prix,2))'}>}[Qté recue])
Prix P2
only({<Prix={'$(=min(Prix,2))'}>}Prix)
Total Quantité
Sum({<Prix=>} TOTAL [Qté recue])
Total Year
num(aggr(
Sum({<Prix={'$(=min(Prix,1))'}>}[Qté recue])*only({<Prix={'$(=min(Prix,1))'}>}Prix)
+
Sum({<Prix={'$(=min(Prix,2))'}>}[Qté recue])*only({<Prix={'$(=min(Prix,2))'}>}Prix)
,Item,Year),'€ #00,00')
Si plusieurs Item et plusieurs Année agréger ces formules Aggr( la formule , ITEM , YEAR)
J'espère que çà t'aidera
Bonjour,
Désolé pour la réponse tardive, je viens d'essayer la solution.
Merci c'est se que je voulais !
Par contre si plusieurs Item et plusieurs Année, ca ne marche pas.
Est se que j'ai fait une faute dans mes formule ? Voici mes formules :
D'avance merci
Bonjour
Regarde si cela te convient , j'ai testé avec 2 Item ( A et B ) mais pas avec 2 années mais je pense que çà devrait marcher
créer un TCD
dim ITEM en ligne
Year en colonne
Quantité P1
aggr(if(rank(-Prix) = 1 , sum([Qté recue])),Year, Item, Prix)
Prix P1
aggr(min(Prix,1),Item) only(aggr(min(Prix,1),Item))
Quantité P2
aggr(if(rank(-Prix) = 2 , sum([Qté recue])),Year, Item, Prix)
Prix P2
aggr(min(Prix,2),Item) ou only(aggr(min(Prix,2),Item))
Total Quantité
Sum({<Prix=>} [Qté recue]) ou juste sum(Qté recue)
Total Year
num(
aggr(sum(Prix *[Qté recue]), Item, Year)
,'€ #00,00')
Bonjour,
Merci. Je viens de tester et ca fonctionne bien.
Par contre j'ai encore une question, je voudrais cacher la colonne si c'est null mais je n'y arrive pas surtout si deux année.
Voici ma condition dans la propriété "show column if" de mon champs Quantité 2 :
sum(aggr(if(rank(-[PO_UNIT_PRICE]) = 2 , sum([Qty Received])),Creation_date_YEAR, Item, [PO_UNIT_PRICE]))>0
Ou me suis je trompé ?
Bonjour
"Afficher la colonne si : Vous pouvez afficher ou masquer une colonne selon qu'une condition est vraie ou fausse."
soit si = 0 : masquée , si = 1 : affichée
çà donnerait pour toi :
if( sum(aggr(if(rank(-[PO_UNIT_PRICE]) = 2 , sum([Qty Received])),Creation_date_YEAR, Item, [PO_UNIT_PRICE]))>0, 1 , 0 )
si la valeur de la formule est > 0 , afficher 1 ( afficher la colonne ) , si non afficher 0 ( masquer la colonne )
Bonjour,
Merci de votre réponse.
Malheureusement ça ne marche pas. La colonne s'affiche dans tout les cas.
Que puis-je faire ?
Merci
Bonjour
On peut tenter çà
if( sum(aggr(if(rank(-[PO_UNIT_PRICE]) = 2 , sum([Qty Received])),Creation_date_YEAR, Item, [PO_UNIT_PRICE]))=0, 1 , 0 )
ou if( isnull(
sum(aggr(if(rank(-[PO_UNIT_PRICE]) = 2 , sum([Qty Received])),Creation_date_YEAR, Item, [PO_UNIT_PRICE]))
) , 1 , 0 )
Cette fois ca m'enlevève bien les colonnes, mais aussi celle avec des valeurs. C'est vriament bizarre
Voici toutes mes expressions, j'ai peut-etre fait une erreur :
Bonjour
Cette fois ca m'enlève bien les colonnes, mais aussi celle avec des valeurs. C'est vraiment bizarre =>
Alors en fait c'est normal un TCD crée un produit cartésien des données , et comme on utilise des dimensions calculées pour afficher les P1 P2 etc par année çà coince .
il faut peut être chercher a changer le modèle de données et créer des champs dans le script , notamment pour l'ordre des Prix ( P1 P2 ) et des quantités Type Quantité Q1 Q2 en fonction du prix.
Pas eu le temps de tester çà m'ai qd j'ai un moment j'y regarde