Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour, je débute dans Qlikview et je suis confronté à un petit problème.
En gros j'ai une somme : j'additionne des jours acquis =sum(NB_JourAcquis)
Seulement je voudrais en fonction de l'utilisateur donc du "$" (la sélection active) gérer mon addition selon cette règle :
de juin à mai une personne gagne 2.08 jours donc au mois de mai elle aurait 2.08 * 12. Mais au mois de juin elle obtient uniquement 2.08 jours.
je sais que je peux faire {$<Année={$(=Only(Année)-1)},Mois={"<=$(=max(Mois))"}>} qui me permet d'obtenir l'année précédente jusqu'au mois Maximum.
Comment je peux faire pour par exemple avoir l'année précédente à partir du mois de juin jusqu'au mois en cours? svp
Merci d'avance.
Jordan Smagghe
Bonjour à tous, j'ai fais comme ceci, j'ai crée une expression nb jours acquis dans laquelle je fais ça :
//Si juin,juil,aout,sept,oct,nov ou dec est selectionné.
=If(GetFieldSelections(Mois)='juin'or GetFieldSelections(Mois)='juil.'or GetFieldSelections(Mois)='août'or GetFieldSelections(Mois)='sept.' or
GetFieldSelections(Mois)='oct.'or GetFieldSelections(Mois)='nov.'or GetFieldSelections(Mois)='déc.',
//On fait la somme du nbrjcpacquis pour l'année en cours de tous les mois - janv, fevrier, mars, avril, mai.
Sum({$<Année = {$(=Only(Année))}, Mois={"<= $(=max(Mois))"}-{'janv.'}-{'févr.'}-{'mars'}-{'avr.'}-{'mai'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100)),
//Sinon on fait la somme de l'année - 1 du moi de juin juil aout setp oct nov dec.
Sum({$<Année = {$(=max(Année)-1)}, Mois={'juin'}+{'juil.'}+{'août'}+{'sept.'}+{'oct.'}+{'nov.'}+{'déc.'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100))+
// + sum de l'année en cours - les mois de juin juil aout sept oct nov dec.
Sum({$<Année = {$(=max(Année))}, Mois={"<= $(=max(Mois))"}-{'juin'}-{'juil.'}-{'août'}-{'sept.'}-{'oct.'}-{'nov.'}-{'déc.'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100)))
Le soucis c'est que le chiffre que j'obtient est multiplié par le nb de jour du mois. Je sais comment diviser par le nb de jour du mois mais cela fonctionne uniquement pour le mois de juin dès que je serais en juillet, il saura le faire pour juillet mais plus pour juin.
Comment faire?
Je voudrais faire:
Sum({$<Année = {$(=Only(Année))}, Mois={"<= $(=max(Mois))"}-{'janv.'}-{'févr.'}-{'mars'}-{'avr.'}-{'mai'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100)/Count([Période]),
mais lorsque j'affiche mon tableau j'ai l'erreur "Nested aggregation not allowed"
Merci d'avance.
Jordan
Bonjour,
ma réponse rapide, un exemple serait plus parlant ...
Dans ton application, si tu a une table calendrier (Master Calendar), l'idée est de créer un champs AnnéeCongé, qui démarre en Juin et termine en mai et de changer le numéro de la periode pour l'utiliser dans l'expression.
En gros dans le calendrier tu fais :
if( num(month(DATE))>=6,year(DATE)+1,year(DATE) as AnnéeCongé,
Et tu peux utiliser ce champs dans le set analysis
Bonjour Jordan,
tu peux essayer ceci :
Dans le début du script, vous trouvez
SET FirstMonthOfYear = 1;
Changez cela en
SET FirstMonthOfYear = 6
Juin devrait être le Mois n°1, juillet le N°2, etc
ta formule fonctionnerai t'elle ainsi ?
FLO
Bonjour Christophe, merci pour ta réponse.
lorsque j'applique j'ajoute à ma table calendrier ce que tu m'as donné :
Calendrier:
LOAD *,
if( num(month(Date))>=6,year(Date)+1,year(Date)) as AnnéeCongé
FROM
$(QVD_TRANSFO_DIR)Calendrier.QVD
(qvd);
mais il me dit que "Date" est introuvable.
J'ai essayé de remplacer Date par un champ de ma table soit Date Calendrier et il me dit qu'il ne trouve pas non plus.
Je vais continuer de chercher.
Merci d'avance pour ta réponse.
Bonjour Florent,
merci de ta réponse.
J'ai une question cependant, es ce que le fait de faire SET FirstMonthOfYear = 6; pourrait influencer le reste de mon application Qlikview?
C'est à dire, es ce que cela va influence les traitements qui sont déjà fait et mis à jours tout les jours.
Merci d'avance pour ta réponse
Jordan
Bonjour, pour vous expliquer un peu plus j'ai tenté de réaliser l'expression que je voudrais avoir :
=If(GetFieldSelections(Mois)='juin'or GetFieldSelections(Mois)='juil.'or GetFieldSelections(Mois)='août'or GetFieldSelections(Mois)='sept.' or
GetFieldSelections(Mois)='oct.'or GetFieldSelections(Mois)='nov.'or GetFieldSelections(Mois)='déc.',
sum({$<Année = {$(=Only(Année))}, Mois= {">=juin <=Only(Mois)"}>}[NBRJCPACQUIS]),
sum({$<Année = {">=Only(Année)-1 <=Only(Année)"}, Mois= {">=juin <=Only(Mois)"}>}[NBRJCPACQUIS]))
Si le mois est juin, juil, aout, sept, oct, nov ou dec : je fais la somme des jours acquis pour l'année en cours du mois de juin au mois actuel.
Sinon(donc si j'ai sélectionné janv, fev, mars, avril, mai) je fais la somme des jours acquis pour l'année -1 à l'année en cours pour les mois de juin de l'année précédente aux mois actuel de l'année actuel.
Mais ça fonctionne pas... j'ai du faire des erreurs ^^.
Qu'en pensez vous de cette manière de faire, y aurait il un moyen que ça fonctionne? Et quels sont mes erreurs?
Merci d'avance
Cordialement
Jordan
en fait, pour l’ensemble de ton appli le 1er mois de l'année sera juin...
Bonjour à tous, j'ai fais comme ceci, j'ai crée une expression nb jours acquis dans laquelle je fais ça :
//Si juin,juil,aout,sept,oct,nov ou dec est selectionné.
=If(GetFieldSelections(Mois)='juin'or GetFieldSelections(Mois)='juil.'or GetFieldSelections(Mois)='août'or GetFieldSelections(Mois)='sept.' or
GetFieldSelections(Mois)='oct.'or GetFieldSelections(Mois)='nov.'or GetFieldSelections(Mois)='déc.',
//On fait la somme du nbrjcpacquis pour l'année en cours de tous les mois - janv, fevrier, mars, avril, mai.
Sum({$<Année = {$(=Only(Année))}, Mois={"<= $(=max(Mois))"}-{'janv.'}-{'févr.'}-{'mars'}-{'avr.'}-{'mai'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100)),
//Sinon on fait la somme de l'année - 1 du moi de juin juil aout setp oct nov dec.
Sum({$<Année = {$(=max(Année)-1)}, Mois={'juin'}+{'juil.'}+{'août'}+{'sept.'}+{'oct.'}+{'nov.'}+{'déc.'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100))+
// + sum de l'année en cours - les mois de juin juil aout sept oct nov dec.
Sum({$<Année = {$(=max(Année))}, Mois={"<= $(=max(Mois))"}-{'juin'}-{'juil.'}-{'août'}-{'sept.'}-{'oct.'}-{'nov.'}-{'déc.'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100)))
Le soucis c'est que le chiffre que j'obtient est multiplié par le nb de jour du mois. Je sais comment diviser par le nb de jour du mois mais cela fonctionne uniquement pour le mois de juin dès que je serais en juillet, il saura le faire pour juillet mais plus pour juin.
Comment faire?
Je voudrais faire:
Sum({$<Année = {$(=Only(Année))}, Mois={"<= $(=max(Mois))"}-{'janv.'}-{'févr.'}-{'mars'}-{'avr.'}-{'mai'}>}[NBRJCPACQUIS]*(Pourc_Ventilation2/100)*(Pourc_Ventilation/100)/Count([Période]),
mais lorsque j'affiche mon tableau j'ai l'erreur "Nested aggregation not allowed"
Merci d'avance.
Jordan