10 Replies Latest reply: Sep 3, 2013 10:50 AM by Antonin Ramet RSS

    rendre indépendant colonne dans graphique

    Antonin Ramet

      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 ?

        • Re: rendre indépendant colonne dans graphique
          David AMOSSE

          Slt,

           

          Tu devrais essayer :

           

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


          Cordialement

            • Re: rendre indépendant colonne dans graphique
              Antonin Ramet

              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 ?


                • Re: rendre indépendant colonne dans graphique
                  Christophe Brault

                  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(...)

                    • Re: rendre indépendant colonne dans graphique
                      Antonin Ramet

                      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.

                        • Re: rendre indépendant colonne dans graphique
                          Christophe Brault

                          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.

                            • Re: rendre indépendant colonne dans graphique
                              Antonin Ramet

                              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.

                                • Re: rendre indépendant colonne dans graphique
                                  Antonin Ramet

                                  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.

                                • Re: Re: rendre indépendant colonne dans graphique
                                  Antonin Ramet

                                  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

                                    • Re: rendre indépendant colonne dans graphique
                                      Christophe Brault

                                      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

                                        • Re: rendre indépendant colonne dans graphique
                                          Antonin Ramet

                                          Dernière tentative de contournement sans refonte totale de la BDD (oui, ce truc là est bientot fini, je veux juste le terminer, et commencer mon propre projet ), il n'y aurait pas par un moyen magique, de lier les deux variables dans la dimension ?

                                           

                                          christophebrault : "tu pourrais essayer de créer un ID unique par personne et par mois dans la table agent"

                                          C'est-à-dire que pour la même personne, par année de présence, il aura 12 ID uniques le retraçant ? Mais je vois pas comment ensuite relier le schmilblik à l'absence.


                                          De plus tu dis "NUM_JOUR est lié à annee_conge et AGENT_ID à NUM_ANNEE, donc tu ne peux pas utiliser une dimension commune pour ces deux faits", mais si je met IDF_AGENT qui lui est lié à Calendrier (et donc annee_conge) et à Agent (num_annee), ça aiderai pas ?


                                          PS: désolé pour toutes les questions qui sont plus trop sur qlikview, mais conceptuel, mais ça m'échappe un poil !