Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je suis nouvel utilisateur sur qlikview et je me retrouve en difficulté concernant la création de variables.
En effet, mon besoin est le suivant :
J'ai un tableau avec les colonnes suivantes : Libellé / Montant N / Montant N-1
J'ai réussi à créer ce tableau, voici les expressions que j'ai mise pour les deux dernières colonnes :
Montant N : Sum({<Phase={"REELLE"},Referentiel={"2016"}, flowname={"TD000"}>}Montant)
Montant N-1 : Sum({<Phase={"REELLE"},Referentiel={"2015"}, flowname={"TD000"}}>}Montant)
Ce que je souhaite faire désormais c'est ne pas fixer l'option Phase car j'en dispose de plusieurs et la mettre en variable.
L'idée la plus simple il me semble c'est de créer une liste multiple avec phase 1 relative à la colonne Montant N et phase 2 relative à la colonne Montant N-1
Mon problème c'est comment déclarer ma variable montant N et montant N-1 et comment l'appeler dans mes deux expressions?
Merci d'avance
Yoann
En fait, c'est normal car tes champs sont liés (étant sur la même ligne dans ta table).
Voici une solution ;
Si tu colles le script ci-dessous dans l'onglet correspondance se sera bon :
correspondance\groupes :
SQL
select a.updper as 'period', b.phasename as 'Referentiel', c.phase as 'code phase', c.phasename as 'Phase', c.ldescf as 'Phase libellé', a.tablenum
from wpkref a
inner join wphase b on a.updper = b.phase
inner join wlist c on a.phase = c.phase;
filtre :
LOAD * INLINE [
Phase2
CVAE-AC01,
JAN-REEL,
PREVISIONP1,
REELLE
];
Bonjour,
Tu créés une variable avec ctrl + alt + q.
Tu y mets la formule souhaitée. Je ne suis pas sûr d'avoir bien compris ce que tu souhaites...
Si c'est Phase alors tu mets =Phase ou = only(Phase)
Pour appeler une variable tu fais $(Nomdetavariable)
Par exemple : Sum({<Phase={$(vPhase)},Referentiel={"2016"}, flowname={"TD000"}>}Montant)
Kevin
Bonjour Yoanne,
tu souhaites comparer N et N-1 sur des phases différentes ?
Bonjour,
Merci pour vos réponses
Effectivement je veux deux phases différentes.
Le souci c'est que ce sera le même champ (phase) qui sera appelé.
le raccourci ctrl+ alt + q ne me sort rien...
Désolé c'est : ctrl + alt + v
Ensuite tu veux deux variables bien distinctes au niveau de ton champ Phase, alors peut-être qu'il faudrait que tu créé un champ Phase_bis.
Peux-tu nous préciser ta demande avec un exemple car je ne suis pas sûr de bien avoir compris ?
Kevin
Bonjour,
J'ai préparé un fichier qvw pour vous montrer un exemple.
Vous verrez dedans un tableau basique que j'ai réussi à faire les montants reportés sont les bons.
Maintenant si vous regardez les formules associées pour chaque colonne c'est uniquement la phase qui change.
Je voudrais mettre ceci variable pour l'utilisateur.
Qu'il choisisse lui-même la phase de la colonne 1 et la phase de la colonne 2.
Le seul souci c'est que je ne vois pas comment vous envoyer le fichier ...
C'est bon j'ai trouvé je n'avais pas vu l'option éditeur avancé...
Dans ton script, onglet correspondance :
tu créé : c.phasename as 'Phase colonne 2'
Ensuite, ctrl + alt + v, ajouter :
vPhase1 = Phase
vPhase2 = Phase colonne 2
Dans ta première expression :
Sum({<Phase={$(vPhase1)},Referentiel={"2016"}, flowname={"I99"}>}Montant)
Dans ta deuxième expression :
Sum({<Phase={$(vPhase2)},Referentiel={"2016"}, flowname={"I99"}>}Montant)
Tu créé tes 2 listes déroulantes avec les champs "Phase" et "Phase colonne 2" pour que l'utilisateur puisse sélectionner les phases souhaitées dans chaque colonne.
Kevin
Je pense à ça aussi mais je dois mal m'y prendre.
J'ai réussi à faire appel à la variable grâce à vos formules mais lorsque je choisis une phase pour la phase1 il me la mets automatiquement pour la phase2.
Je n'arrive pas à pouvoir choisir deux phases différentes, j'ai bien rajouter dans mon script une deuxième phase pourtant.
En fait, c'est normal car tes champs sont liés (étant sur la même ligne dans ta table).
Voici une solution ;
Si tu colles le script ci-dessous dans l'onglet correspondance se sera bon :
correspondance\groupes :
SQL
select a.updper as 'period', b.phasename as 'Referentiel', c.phase as 'code phase', c.phasename as 'Phase', c.ldescf as 'Phase libellé', a.tablenum
from wpkref a
inner join wphase b on a.updper = b.phase
inner join wlist c on a.phase = c.phase;
filtre :
LOAD * INLINE [
Phase2
CVAE-AC01,
JAN-REEL,
PREVISIONP1,
REELLE
];