Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Rupture conditionnelle sur une valeur de champ

Voilà, je débute avec Qlikview .

J'ai créé un rapport contenant un tableau croisé dynamique affichant le CA par client et par mois.

Je souhaiterai dans ce tableau insérer une dimension basée sur une valeur particulière du champ "code famille élémentaire du client" qui me permettrait de regrouper  les clients de type "Industriel" des autres :

Si le code famille élémentaire =  040 => Industriel

Si autre valeur => Non industriel

Comment réaliser cela  dans qliview : définir une variable à l'aide de quelle fonction ?.

Merci d'avance pour votre aide

Labels (1)
7 Replies
Not applicable
Author

Je suis absent(e) du bureau jusqu'au 22/03/2013

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Rupture conditionnelle sur une valeur de

champ" envoyé le 21/3/13 9:23:11.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.

rlp
Creator
Creator

Créez une dimension calculée ( Propriétes -> Dimensions -> Dimension Calculée ) valant :

if( [code famille élémentaire du client] = '040' , 'Industriel' , 'Autres' )

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 22/03/2013

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Re: Rupture conditionnelle sur une valeur de

champ" envoyé le 21/3/13 15:37:47.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.

Not applicable
Author

Merci beaucoup, cela fait XX temps que je cherchais la solution..

Je savais que c'était très simple mais suis passé par diverses tentatives :création de variable, fonction aggr notamment.


Je voulais créer une variable pour l'utiliser au même titre que d'autres dimensions

En créant avec l'instruction let nomdemavariable =  if( [accounting_center] = 'INVESTISSEMENTS' , 'CASH OUT' , 'RESULTAT' )

=> je ne sais pas où loger cette instruction (pas dans module visiblement)

Ou dans paramètres variables :

if( [accounting_center] = 'INVESTISSEMENTS' , 'CASH OUT' , 'RESULTAT' )

=> la variable s'afiche dans l'éditeur d'expressions, mais l'insertion de la variable en tant que dimension ne donne pas le résultat escompté..

Merci pour votre aide si possible !

yvesqlik
Partner - Contributor III
Partner - Contributor III

Variable 1= if( [accounting_center] = 'INVESTISSEMENTS' , 'CASH OUT' , 'RESULTAT' )

dans le champs dimension essaie:

$(=$(Variable 1))

ou

'$(=$(Variable 1))'

j'espère que l'une des solutions marchera

cje
Employee
Employee

Bonjour,

Supposez que vous vouliez créer une dimension basée sur la formule suivante qui inclut des quotes :

if(mid(,1,1)='A','Les A','les Autres')

Soit vous écrivez votre formule directement dans la dimension calculée, soit vous procédez comme suit :

Dans la partie script, créer une variable de type constante par l’instruction SET (par cette instruction, la variable est créée mais la formule à droite du = n’est pas interprétée. Il faut de plus transformer toutes les quotes en chr(39) pour qu’elles ne prettent pas à confusion dans l’écriture de la formule. Dans notre cas, cela donnera :

set vLaDimension='if(mid(,1,1)=' & chr(39) & 'A' & chr(39) & ',' & chr(39) & 'Les A' & chr(39) & ',' & chr(39) & 'les Autres' & chr(39) & ')';

Notez l’utilisation de quote en début et en fin de formule. Cela permet de stocker une chaine de caractère dans une variable, cette chaine étant ensuite susceptible de contenir n’importe quoi.

Après rechargement de l’application, on voit apparaitre la variable dans la liste des variables associées au document, et rien n’a été interprété :

Maintenant, il suffit d’utiliser cette variable dans une dimension calculée.

Problème : si on se contente d’écrire dans la dimension calculée une expression du style =$(vLaDimension), ça ne marche qu’à moitié, parce que la variable est bien remplacée par la formule, mais la formule n’est pas interprétée. Pour faire en sorte que la variable soit remplacée par une formule et que la formule soit ensuite interprétée, il faut utiliser une nouvelle fois l’opérateur $() qui, au-delà de la substitution, permettra également d’interpréter une formule de calcul.

Donc au final, l’écriture de votre dimension calculée deviendra =$(=$(vLaDimension)). Voici la formule dans la fenêtre de la dimension calculée :

Essayez, ça marche. Cette méthode a pour avantage de vous permettre de stocker toutes vos formules dans des variables, elles-mêmes stockées dans un script qui peut par la suite être externalisé à l’application sous la forme d’un simple fichier texte en général suffixé en .qvs et appelé par des instruction du type $(include=’monprogramme.qvs’). Dans ce cas, précis, le fichier monprogramme.qvs contiendrait du code script qlikview qui serait ensuite exécuté au rechargement de l’application.

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/>

18 octobre 2012 | De la Business Intelligence à la Business Discovery...

http://www.qlikview.fr/BDWT-Paris

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.

Not applicable
Author

ça marche parfaitement merci à tous les deux. Je peux donc utiliser la variable comme nouvelle dimension. J'arrive au même résultat en faisant un set analysis dans l'expression de calcul.

Ce que je ne comprends pas, c'est la raison pour laquelle je ne peux pas utiliser la variable pour filtrer selon le résultat de ma variable dans un set analysis ou un if :

J'entre dans mon expression calculée :

sum({<CASHOURESULTAT={'RESULTAT'}>} account_cost)

Sum({$< CASHOURESULTAT = 'RESULTAT'>}account_cost)

Le grahique s'affiche mais ne filtre pas , j'ai les deux valeurs correspondant au calcul de la variable dans le script (RESULTAT ET INVESTISSMENT)

J'ai également essayé ceci sur base d'un post mais pas de résultat, peut être une erreur de syntaxe ?

sum ({<CASHOURESULTAT={$(=('INVESTISSEMENTS')}>} account_cost))

Merci pour votre aide !