Qlik Community

Groupe des Utilisateurs Francophones

Announcements
Coming Aug. 9: New Simplified Authoring for Qlik Sense SaaS – For Details, CLICK HERE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

rendre indépendant colonne dans graphique

Bonjour à tous,

J'ai déjà posé ma question en anglais, mais je vais tenter en français, c'ets plus compréhensible (je mettrai les deux en résolus, je le jure !)

Je dois calculer le taux d'absentéisme, donc ça, je sais faire, j'ai mon opération. J'ia des données pour plusieurs années, donc je peux selectionner pour quelle année je veux calculer ça. Si je choisi d'afficher qu'une année dans mon histogramme, tout va bien, j'ai le bon taux, une seule barre qui correspond bien.

2009.png

2010.png

Là où le bas blesse, c'est lorsque je choisi 2 années. En gros, il faudrait que ca m'affiche une barre avec le % de la premiere année, puis une deuxième avec la deuxième année. Comme ça, ça permet de voir l'évolution entre les deux années. Or là, ça me recalcule je ne sais trop quoi, je comprends même pas pourquoi.


fail.png

Il faudrait que ça soit les mêmes valeurs qu'au dessus.


J'ai donc ça en expression : count(NUM_JOUR)/((count( {$<NUM_ANNEE = >} AGENT_ID )/12)*365)


((count( {$<NUM_ANNEE = >} AGENT_ID )/12)*365) => ca compte le nombre d'agent, mais ils sont marqués 12 fois (une ligne par mois de présence) , et ensuite, on multiplie ça par 365 pour avoir le nombre de jours travaillés sur l'année.


Donc c'est peut-être ma formule qui est erronnée, mais est-ce qu'il y a un moyen de rendre indépendantes les deux barres, pour qu'elles correspondent bien seulement à leur année ?

10 Replies
Not applicable
Author

Slt,

Tu devrais essayer :

=aggr(count(NUM_JOUR),NUM_ANNEE ) / (aggr((count(AGENT_ID)/12)*365), NUM_ANNEE)


Cordialement

Not applicable
Author

Merci pour ta réponse, mais ça n'a pas fonctionné. MAIS j'ai trouvé d'où venait le problème. C'est un soucis d'expression, bien évidemment.

J'explique un peu le schmilblik: count(NUM_JOUR)/((count( {$<NUM_ANNEE = >} AGENT_ID )/12)*365).


Count(NUM_JOUR) => correspond au nombre de jours d'absence total. (Il y a une ligne par jour d'absence, donc on compte le nombre de ligne). La table est composée d'un attribut NUM_ANNEE (en maj) qui lui correspond à l'année du jour d'absence.


Le num_annee (en min) lui, correspond à un salarié, tous les mois, une ligne est créée. En gros s'il est employé du 01/01/13 au 01/04/13, il y aura 4 lignes avec l'ID de ce salarié.


Le soucis, c'est que quand je choisi une année, et seulement une, NUM_ANNEE et num_annee sont les mêmes, et rien ne change. Mais quand on prend plusieurs années, NUM_ANNEE ne fait la distinction entre ces deux années.

Je fais un exemple chiffré pour qu'on comprenne.


En 2009, 100 000 jours d'absence et 1 000 000 de jours travaillés par tous les salariés

En 2010, 50 000 jours d'absence et 1 500 000 de jours travaillés par tous les salariés.


Si je ne choisi que l'année 2009, l'histogramme sera bon, il fera 100 000/ 1 500 000. Mais si je prend deux années, la premiere colonne fera (100 000 + 50 000)/1 000 000, et la deuxieme (100 000+ 50 000)/1 500 000.


Comment faire pour que Count(NUM_JOUR) soit relié à la 1ere année PUIS à la 2ème ? J'avais essayé :

count({$<NUM_ANNEE = {$(num_annee)} >}NUM_JOUR)/((count( {$<NUM_ANNEE = >} AGENT_ID )/12)*365)

mais ça n'a pas marché. Est-ce qu'il faudrait changer de dimension (que num_année ici) ? En mettre une calculée ?


christophebrault
Specialist
Specialist

Bonjour,

Le plus simple pour pouvoir te répondre est que tu partages un qvw, peut être en brouillant les champs pour la confidentialité.

A te lire, je pense que tu as un problème dans ton modèle de donnée. Il ne doit y avoir qu'une dimension année si tu veux l'utiliser pour deux tables séparée. Je travaille sur une application RH et pour cela j'ai lié de cette manière :

SALARIE :

Matricule&'-'&Year(Date)&Num(Month(Date)) AGENT_ID, // identifiant unique par mois par salarié

Date

... autres champs ...

ABSENCE :

Matricule&'-'&Year(Date)&Num(Month(Date)) AGENT_ID,

Date as Date_Absence

...

Tu génère un calendrier sur la table salarié et il servira pour toutes les tables. Ensuite tu dois pouvoir faire :

Count(Date_Absence)/Count(...)

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Not applicable
Author

Oui, il est clair que la structure de données est pas optimisée, mais je viens de reprendre le projet en cours, et le soucis est que la dualité entre les deux noms a été utilisée pour plusieurs graphiques, et que si je venais à changer le nom d'un élément, j'ai peur de chambouler les 2 mois de travail précédents.

Mais il est sur que si je ne trouve pas de solution autre rapidement, je passerai par ce biais.

Je vais regarder pour exporter le qvw, je ne sais pas trop si avec la version d'essai, c'est possible.

christophebrault
Specialist
Specialist

Oui c'est possible.

Sans un bon modèle, c'est potentiellement tous les graphiques qui peuvent présenter des erreurs... Ou alors l'associativité ne sera pas effective dans l'ensemble du document.

Lors de nouveaux projets, je reviens souvent sur le modèle afin de vérifier qu'il répond au besoin.

Même si tu as des expressions qui ne marchent plus, ce sera l'occasion de revenir dessus pour les comprendre et les améliorer.

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Not applicable
Author

Comme rien n'est simple dans ce bas monde, vu que j'ai repris le bébé, je suis pas admin du coucou, donc pour le brouillage, je ne crois pas pouvoir.

Not applicable
Author

Bon j'ai changé le nom, ça a été changé dans les formules, et quelques soucis ont été vus, mais justement, il s'agit de soucis du même type.

export.png

Donc maintenant, c'est plus un soucis de BDD, je pense que c'est un soucis d'expression ou de dimension.

Donc num_annee et annee_conge ne sont plus liés. Il faudrait que annee_congé prenne la valeur de num_annee choisie. Mais quand y'en a une, ça va. Mais dès lors que j'en prend 2, annee_conge fait pas la distinction , vu que j'ai selectionné deux années, bah il additionne les deux, il prend pas 2009 ET 2010.

Je suis dans une impasse. Je sais même pas si c'est dimension ou expression à changer.

Not applicable
Author

Bon, j'ai réussi à brouiller je crois, il s'agit de l'onglet synthèse, l'histogramme absentéisme. Je n'arrive pas à mettre en relation Num_jour avec SON année. Quand on en choisi plusieurs, il additionne ces deux là.

Merci à qui pourra m'aider, j'en peux plus

christophebrault
Specialist
Specialist

Ok, c'est ce que je pensais.

Le problème vient du fait que tu as plusieurs champs année.

NUM_JOUR est lié à annee_conge et AGENT_ID à NUM_ANNEE, donc tu ne peux pas utiliser une dimension commune pour ces deux faits.

C'est ton modèle qui n'est pas bon. Je n'ai pas le temps tout de suite de corrigé directement ton application, mais tu pourrais essayer de créer un ID unique par personne et par mois dans la table agent, et de recréer de la même manière ce champs dans la table absence et arrêt. Tu pourras alors supprimer les années et mois de ces deux dernières pour ne garder que la dimension temps dans la table agent.

A bientôt

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin