Qlik Community

Groupe des Utilisateurs Francophones

Announcements
Submit your remarkable customer story for the Global Transformation Awards at QlikWorld Denver 2022. SUBMIT A STORY
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Condition d'affichage des dimensions

Bonjour à tous,

Voici ma question :

Dans un tableau simple, j'ai une dimension A pour laquelle j'ai en expression une valeur B.

est-il possible de conditionner l'affichage des lignes de A en fonction des valeurs B ?

En résumé je souhaite afficher uniquement les lignes A supérieur à 1 par exemple.

Merci de votre aide

Christophe

27 Replies
martin59
Specialist II
Specialist II

Christophe,

Sinon vous pouvez toujours gérer cela par vos expressions, solution qui serait toujours moins gourmande que par le biais d'une dimension calculée.

Pour ceci, vous devrez utiliser du Set Analysis.

Si votre expression initiale est :

sum(A)

Celle-ci deviendrait :

sum({<B={">1"}>} A)

J'espère que celà vous rendra service,

Martin Favier

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 02/01/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: Condition d'affichage des dimensions"

envoyé le 27/12/12 20:44:14.

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

Bonjour  et merci pour cette solution qui comme vous le dites,

est beaucoup moins gourmande et c'est très bien !!

C'est parfait

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 02/01/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: Condition d'affichage des dimensions"

envoyé le 28/12/12 9:57:12.

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

Bonjour Martin,

La demande initiale est d'afficher les lignes de dimension A pour lesquelles l'expression sum(B)>1.

J'utilise moi-même un calcul sur la dimension similaire à celui préconisé par Reynald :

if(aggr(sum(B), A)>1, A,Null()) en cochant "Supprimer si la valeur est nulle"

Mais je suis intéressé par toute autre méthode et vous en proposez deux :

- utiliser les limites dimensionnelles, c'est possible en V11mais sur les tableaux simples, pas sur les tableaux croisés.

- utiliser le SET ANALYSIS sur l'expression, plutôt qu'un calcul sur la dimension.

Cette méthode me semble bien mais je ne comprends pas votre expression :

sum({<B={">1"}>} A)

Pouvez-vous me l'expliquer, rapportée à la demande initiale ?
Merci,

Didier Brenet

martin59
Specialist II
Specialist II

Bonjour Didier,

La formule indiquée ci-dessus indique que vous sommez les valeurs du champ A, lorsque que le champ B a lui-même une valeur supérieure à 1.

Le résultat serait le même qu'en faisant :

sum(if(B>1, A))

La différence est que la formule utilisée dans mon post précédent est beaucoup plus optimisée et peut également être plus poussée.

Vous trouverez plus de détail sur cette syntaxe dans l'aide de QlikView, rubrique "Analyse d'ensembles".

Martin Favier

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 02/01/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: Condition d'affichage des dimensions"

envoyé le 28/12/12 11:51:17.

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

Je suis absent(e) du bureau jusqu'au 02/01/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: Condition d'affichage des dimensions"

envoyé le 28/12/12 12:13:50.

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

Martin,

Je comprends bien la syntaxe de B>1 en utilisant le SET ANALYSIS mais pourquoi une somme de A qui, dans notre cas, est une dimension ?
Prenons l'exemple suivant :

dimension A : Salarié

expression E1 : nb heures théoriques

expression E2 : nb heures réelles

expression B : écart E2-E1

on veut afficher tous les salaries pour lesquels B>1
Pouvez-vous rapporter votre expression à cet exemple ?

Merci,

Didier

martin59
Specialist II
Specialist II

Désolé Didier, j'avais en effet mal compris votre exemple.

Dans ce cas, je ferais donc un tableau avec la dimension A et 3 expressions.

Voici les formules pour chacune de ces expressions :

Expression B:

Sum(NbHeuresReelles) - Sum(NbHeuresTheoriques)

Expression E1:

if([Expression B], Sum(NbHeuresReelles))

Expression E2:

if([Expression B], Sum(NbHeuresTheoriques))

C'est certe plus contraignant que la solution proposée Raynald, mais beaucoup mieux en terme de performance machine.

Après tout dépend de vos données et de la volumétrie...

Martin Favier