Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
emilieca
Partner - Contributor
Partner - Contributor

Limiter l'affichage d'un indicateur

Bonjour,

Je dois mettre en place une application QlikView à destination de comités d'entreprise.

Pour cela, je dois limiter la visualisation des objets.

La maille la plus fine de mon script est le salarié.

Je souhaite empêcher l'objet d'afficher le résultat quand il y a moins de 3 salariés impactés.

Est ce possible?

En vous remerciant,

Cordialement

Emilie

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Bonjour Emilie,

Vous pouvez mettre une valeur numérique par défaut à la place de 'non dispo' pour qu'une barre soit affichée et pour cette barre modifié la couleur d'affichage et caché la valeur(valeur par défaut).

En sélectionnant uniquement 2016 et en mettant la limite d'effectif à plus de 2 , j'obtient le résultat suivant :

2016-11-13 22_43_28-QlikView.png

Je vous joins votre QVW modifié comme suit:

  • Ajout de la dimension SEXE
  • Conserver une seul expression pour l'affichage des barres
  • Ajout d'une expression qui calcul l'Effectif pour chaque combinaison
    min(aggr(Sum({<FDM={'1'},EXERCICE={$(=max(EXERCICE))},AN_MOIS={$(=max(AN_MOIS))} >} EFF_PRESENT),TRANCHE_AGE, SEXE_LIB))
    • Cette valeur est ajoutée dans l'info bulle
    • Cette valeur est utilisée comme condition
  • Modification de la valeur du salaire moyen par une valeur par défaut si l'effectif minimum n'est pas atteint par une valeur par défaut
  • Modification de la couleur d'affichage de la valeur si l'effectif minimum n'est pas atteint
  • Modification de la couleur de la barre si l'effectif minimum n'est pas atteint

En vérifiant votre expression pour calculer le salaire moyen, il y a plusieurs chose que je trouve étrange:

  • Vous faite la moyenne des salaires brut de tous les matricule pour tous les mois plus petit ou égale au mois sélectionné sans tenir compte de l'exercice MAX (au cas ou plusieurs exercices sont sélectionnés).???
  • Vous divisez votre moyenne par l'effectif présent pour le mois et l'exercice sélectionné ???

Si vous voulez calculer le salaire moyen de tout vos employé depuis le début de l'année, il faut calculer le salaire moyen par matricule, puis calculer le salaire moyen de cet ensemble :

avg(aggr(avg({<CUMUL_MENSUEL={'Salaire Brut'},EXERCICE={$(=max(EXERCICE))},MOIS={"<=$(=max(MOIS))"}>}CUMUL_MENSUEL_VALEUR), MATRICULE, TRANCHE_AGE, SEXE_LIB))

ATTENTION, les AGGR doivent au minimum avoir la même granularité que l'ensemble de données définit par le graphe (il doit contenir les dimensions du graphe). Que cela soit pour l'expression de l'Effectif ou du Salaire.

View solution in original post

9 Replies
brunobertels
Master
Master

Bonjour Emilie

Bien que je pratique plus sur QlikSense que sur Qlikview il est tout a fait possible de limiter des calculs suivant un nombre de salariés impactés par ce calcul.

Dans les objets sous qlikview tu as des options de limitations

Est ce que tu peux détailler un peu plus ta questions soit en donnant ta formule de calcul que tu veux limiter

soit en mettant un exemple de fichier

Bruno

emilieca
Partner - Contributor
Partner - Contributor
Author

Bonjour Bruno,

Merci pour ta réponse.

Je t'ai mis un fichier .qvw en pièce jointe, avec deux des objets que je souhaiterai limiter.

Il s'agit ici de données sur la rémunération à destination des membres du comité d'entreprise.

Il ne doivent pas avoir ou déduire d'information individuelles.

Ainsi je souhaiterai que l'information ne soit pas visible lorsque mon objet concerne 5 personnes et moins.

Par exemple, dans l'objet salaire moyen par âge, certaines tranches d'âge ne comportent qu'un seul salarié.

En l'état, il sera facile pour les délégués du personne de savoir de qui il s'agit.

Merci beaucoup

Emilie

brunobertels
Master
Master

Bonjour Emilie

Merci pour ton fichier, en revanche je ne peux pas l'ouvrir car je n'ai que la version gratuite de qlikview qui ne permet d'ouvrir que ses propres fichiers créés ou les exemples et par d'autres fichiers qvw importés.

Je pensais plus a un extrait de base excel avec quelques données et tes formules de calcul , pour reproduire çà sous Qliksense

Bruno

emilieca
Partner - Contributor
Partner - Contributor
Author

Bonjour Bruno,

Ce n'est pas moi qui ai effectué le script qui est assez compliqué.

Les données de ces objets viennent de plusieurs fichiers excel et sont retravaillés dans un qvw ETL.

Voici une capture d'écran de l'application que je t'ai envoyé:

Sans titre.jpg

La formule Frais du personnel dans l'objet graphique est la suivante:

=Sum({<CUMUL_TYPE={'Brut','Constributions patronales'}, EXERCICE=>}CUMUL_MENSUEL_VALEUR)

la formule dans l'objet Salaire moyen par âge est la suivante:

=round(avg({<SEXE={'F'},CUMUL_MENSUEL={'Salaire Brut'},MOIS={"<=$(=max(MOIS))"}>}CUMUL_MENSUEL_VALEUR)

/sum({<SEXE={'F'},FDM={'1'},EXERCICE={$(=max(EXERCICE))},AN_MOIS={$(=max(AN_MOIS))} >} EFF_PRESENT),0.01)

Est ce que cela te suffit?

Merci beaucoup,

Emilie

t_moutault
Contributor III
Contributor III

Bonjour Emilie,

Au niveau des expressions tu peux utiliser cela :

exemple concernant les Femmes

=if(count(DISTINCT {<SEXE={'F'}>} MATRICULE)>=5 ,

round(avg({<SEXE={'F'},CUMUL_MENSUEL={'Salaire Brut'},MOIS={"<=$(=max(MOIS))"}>}CUMUL_MENSUEL_VALEUR)

/sum({<SEXE={'F'},FDM={'1'},EXERCICE={$(=max(EXERCICE))},AN_MOIS={$(=max(AN_MOIS))} >} EFF_PRESENT),0.01)

)

si tu souhaites rendre l'objet complétement invisible tu peux aller dans propriété->Disposition et utiliser l'affichage conditionnel :

limit.png

brunobertels
Master
Master

Bonjour

comme je ne peux ouvrir les fichier qvw

je t'ai fait un petit exemple de ce qu'il est possible de faire avec

quelques données fictives pour que tu puisses voir la logique

tranche : classe d'age

count(employé) compte le nombre de salarié

1er formule

if(aggr(count(employé),tranche)<=5, 0, count(employé))

permet de compter les employé si leur nombre dans une tranche d'age et

supérieur ou inférieur à 5 sinon affiche 0

2eme formule

if(aggr(count(employé),tranche)<=5,'non dispo',avg(salaire))

t'affiche donc le salaire moyen par tranche si le nombre de salarié

d'une tranche est supérieur à 5

En espérant que ça t'aidera

emilieca
Partner - Contributor
Partner - Contributor
Author

Merci beaucoup à tous les deux!

Vos formules fonctionnent bien et les données pour moins de 5 salariés n'apparaissent pas!

J'ai bien la notion 'Non dispo' qui s'affiche dans les tableaux à la place des données.

Par contre, concernant les objets type Histogramme, y a t'il une astuce pour qu'on ait une information comme quoi il y a des données pour une tranche, mais qui ne peuvent pas être communiquées?

Merci beaucoup!

Emilie

sfatoux72
Partner - Specialist
Partner - Specialist

Bonjour Emilie,

Vous pouvez mettre une valeur numérique par défaut à la place de 'non dispo' pour qu'une barre soit affichée et pour cette barre modifié la couleur d'affichage et caché la valeur(valeur par défaut).

En sélectionnant uniquement 2016 et en mettant la limite d'effectif à plus de 2 , j'obtient le résultat suivant :

2016-11-13 22_43_28-QlikView.png

Je vous joins votre QVW modifié comme suit:

  • Ajout de la dimension SEXE
  • Conserver une seul expression pour l'affichage des barres
  • Ajout d'une expression qui calcul l'Effectif pour chaque combinaison
    min(aggr(Sum({<FDM={'1'},EXERCICE={$(=max(EXERCICE))},AN_MOIS={$(=max(AN_MOIS))} >} EFF_PRESENT),TRANCHE_AGE, SEXE_LIB))
    • Cette valeur est ajoutée dans l'info bulle
    • Cette valeur est utilisée comme condition
  • Modification de la valeur du salaire moyen par une valeur par défaut si l'effectif minimum n'est pas atteint par une valeur par défaut
  • Modification de la couleur d'affichage de la valeur si l'effectif minimum n'est pas atteint
  • Modification de la couleur de la barre si l'effectif minimum n'est pas atteint

En vérifiant votre expression pour calculer le salaire moyen, il y a plusieurs chose que je trouve étrange:

  • Vous faite la moyenne des salaires brut de tous les matricule pour tous les mois plus petit ou égale au mois sélectionné sans tenir compte de l'exercice MAX (au cas ou plusieurs exercices sont sélectionnés).???
  • Vous divisez votre moyenne par l'effectif présent pour le mois et l'exercice sélectionné ???

Si vous voulez calculer le salaire moyen de tout vos employé depuis le début de l'année, il faut calculer le salaire moyen par matricule, puis calculer le salaire moyen de cet ensemble :

avg(aggr(avg({<CUMUL_MENSUEL={'Salaire Brut'},EXERCICE={$(=max(EXERCICE))},MOIS={"<=$(=max(MOIS))"}>}CUMUL_MENSUEL_VALEUR), MATRICULE, TRANCHE_AGE, SEXE_LIB))

ATTENTION, les AGGR doivent au minimum avoir la même granularité que l'ensemble de données définit par le graphe (il doit contenir les dimensions du graphe). Que cela soit pour l'expression de l'Effectif ou du Salaire.

emilieca
Partner - Contributor
Partner - Contributor
Author

Bonjour,

Je vous remercie beaucoup pour votre retour.

Je suis désolée pour la réponse tardive, j'étais en congés la semaine dernière

Je ne connaissais pas cette possibilité de créer une expression pour l'utiliser comme condition, merci beaucoup.

Concernant ma formule pour le salaire moyen:

- Je fais effectivement la moyenne des salaires bruts sans tenir compte de l'exercice MAX car mon client ne veut pouvoir sélectionner qu'un seul exercice à la fois

- Concernant la division par l'effectif présent, il s'agit effectivement d'une erreur de copier/coller

Je vous remercie beaucoup pour votre aide

Emilie