Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello everyone,
I am trying to calculate the number of members at a time T, ie the same day.
I use the following expression that brings me nothing. Yet phrase ok.
I think it's a question of union or intersection ...
=count({$<LIAISON_POLICE_DTAFFIL={"<=Today()"},LIAISON_POLICE_DTRADIAT={">=Today()"},ADHERENT_DTSORTIE={">=Today()"}>}ADHERENT_NOUNIQUE)
Anyone have any idea?
Thank you in advance,
Emmanuelle
Bonjour,
Plusieurs remarques :
- Un champ date n’existe pas dans QlikView. Il s’agit en fait d’un « dual » composé d’un nombre et d’une représentation formatée. Au chargement, s’il s’agit d’un nombre simple, QlikView le formate en utilisant la représentation par défaut (exemple, si on charge 123.54, QlikView va vous proposer une représentation décimale). S’il s’agit d’une représentation formatée comme une date (exemple 16/12/2013), QlikView va essayer de l’interpréter en tant que tel. Si l’interprétation est validée, QlikView va créer ce fameux dual en transformant la chaine de date en nombre puis en vous proposant la représentation par défaut à l’affichage sous la forme d’une date (exemple, 16/12/2013 devient 41624 mais est affiché comme 16/12/2013). Si l’interprétation est invalide, QlikView va le laisser tel quel et l’utiliser comme une chaine de caractères. On peut s’en rendre compte très simplement en utilisant les objets listes dans l’interface. Si la liste contient des dates valides, allez dans les propriétés de la liste, dans l’onglet Nombre, changez la représentation par défaut et passez sur un entier. Vous allez voir apparaitre le nombre du dual sous-jacent à la date.
- Quand on utilise une fonction telle que today() dans un SET ANALYSIS, il faut dire à QlikView d’évaluer le résultat de cette fonction avant de l’appliquer à la sélection du SET ANALYSIS. Pour ce faire, on doit employer la syntaxe générale suivante qui inclut l’opérateur $ permettant de faire l’évaluation :
o FONCTION_AGREGAT ( { < CHAMP = { $(=EXPRESSION_A_EVALUER) } > } INDICATEUR )
- Il faut en plus récupérer la valeur numérique du dual plutôt que son expression au format JJ/MM/AAAA. En effet, dans le SET ANALYSIS un expression au format JJ/MM/AAAA est vue comme une chaine de caractères. Donc ça ne marchera pas.
- Dans votre cas, cela donnerait la formule finale suivante:
o count({$<LIAISON_POLICE_DTAFFIL={"<=$(=num(Today()))"},LIAISON_POLICE_DTRADIAT={">=$(=num(Today()))"},ADHERENT_DTSORTIE={">=$(=num(Today()))"}>}ADHERENT_NOUNIQUE)'
Je joins une petite appli de démo QlikView avec 4 champs standards inspirés de votre modèle, qui vous ramène le calcul dans un objet texte.
Cdt
Christophe Jouve
Senior Solution Architect
Direct: +33 1 55 62 65 54
Mobile: +33 6 76 24 22 47
Email: Christophe.Jouve@qlik.com
QlikTech
France Headquarters Office,93 avenue Charles de Gaulle
92200 Neuilly sur Seine
qlik.com<http://www.qlik.com/>
Business Discovery World Tour | Paris | 10 décembre 2013
http://www.qlikview.fr/bdwt-paris-2013
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.
You need dollar sign expansion to evaluate functions in your advanced searches:
=count(
{$<
LIAISON_POLICE_DTAFFIL={"<=$(=Today())"},
LIAISON_POLICE_DTRADIAT={">=$(=Today())"},
ADHERENT_DTSORTIE={">=$(=Today())"}
>}
ADHERENT_NOUNIQUE)
Also the format of your date fields need to match your standard date format.
Are sure that the the format from your fields(LIAISON_POLICE_DTAFFIL, LIAISON_POLICE_DTRADIAT, ADHERENT_DTSORTIE) is the same like today()? maybe you have to use the num() to conmpare the date...
Have you tried the if()-function
if(num(LIAISON_POLICE_DTAFFIL)<=num(today()),
and ...
and ...
,
count (ADHERENT_NOUNIQUE)
)
Thank you yvesqlik and swuehl 🙂
The format of my fields is not the same for all. QlikView can not compare what is not comparable !
You can use an additional date() formatting function to make field format match:
=count(
{$<
LIAISON_POLICE_DTAFFIL={"<=$(=Date(Today(),'YYYY-MM-DD'))"},
LIAISON_POLICE_DTRADIAT={">=$(=Date(Today(),'MM/DD/YYYY'))"},
ADHERENT_DTSORTIE={">=$(=Date(Today(),'DD.MM.YYYY'))"}
>}
ADHERENT_NOUNIQUE)
Bonjour,
Plusieurs remarques :
- Un champ date n’existe pas dans QlikView. Il s’agit en fait d’un « dual » composé d’un nombre et d’une représentation formatée. Au chargement, s’il s’agit d’un nombre simple, QlikView le formate en utilisant la représentation par défaut (exemple, si on charge 123.54, QlikView va vous proposer une représentation décimale). S’il s’agit d’une représentation formatée comme une date (exemple 16/12/2013), QlikView va essayer de l’interpréter en tant que tel. Si l’interprétation est validée, QlikView va créer ce fameux dual en transformant la chaine de date en nombre puis en vous proposant la représentation par défaut à l’affichage sous la forme d’une date (exemple, 16/12/2013 devient 41624 mais est affiché comme 16/12/2013). Si l’interprétation est invalide, QlikView va le laisser tel quel et l’utiliser comme une chaine de caractères. On peut s’en rendre compte très simplement en utilisant les objets listes dans l’interface. Si la liste contient des dates valides, allez dans les propriétés de la liste, dans l’onglet Nombre, changez la représentation par défaut et passez sur un entier. Vous allez voir apparaitre le nombre du dual sous-jacent à la date.
- Quand on utilise une fonction telle que today() dans un SET ANALYSIS, il faut dire à QlikView d’évaluer le résultat de cette fonction avant de l’appliquer à la sélection du SET ANALYSIS. Pour ce faire, on doit employer la syntaxe générale suivante qui inclut l’opérateur $ permettant de faire l’évaluation :
o FONCTION_AGREGAT ( { < CHAMP = { $(=EXPRESSION_A_EVALUER) } > } INDICATEUR )
- Il faut en plus récupérer la valeur numérique du dual plutôt que son expression au format JJ/MM/AAAA. En effet, dans le SET ANALYSIS un expression au format JJ/MM/AAAA est vue comme une chaine de caractères. Donc ça ne marchera pas.
- Dans votre cas, cela donnerait la formule finale suivante:
o count({$<LIAISON_POLICE_DTAFFIL={"<=$(=num(Today()))"},LIAISON_POLICE_DTRADIAT={">=$(=num(Today()))"},ADHERENT_DTSORTIE={">=$(=num(Today()))"}>}ADHERENT_NOUNIQUE)'
Je joins une petite appli de démo QlikView avec 4 champs standards inspirés de votre modèle, qui vous ramène le calcul dans un objet texte.
Cdt
Christophe Jouve
Senior Solution Architect
Direct: +33 1 55 62 65 54
Mobile: +33 6 76 24 22 47
Email: Christophe.Jouve@qlik.com
QlikTech
France Headquarters Office,93 avenue Charles de Gaulle
92200 Neuilly sur Seine
qlik.com<http://www.qlik.com/>
Business Discovery World Tour | Paris | 10 décembre 2013
http://www.qlikview.fr/bdwt-paris-2013
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.
Hello,
It's always tricky with set analysis do most of time I use this perfect blog from Stefan Whalter:
http://www.qlikblog.at/1384/set-analysis-wizard-qlikview/http://
Have fun
Regards
Stéphane Chivet