IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QlikView Discussion :

Fonction "aggr" posant problème dans l'expression d'un graphique !


Sujet :

QlikView

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut Fonction "aggr" posant problème dans l'expression d'un graphique !
    Bonjour à tous,

    Actuellement étudiant et en stage dans une entreprise, je viens vers vous pour savoir si vous pourriez me donnez un petit coup de main !

    Je vais essayer d'expliquer mon problème clairement :

    Je suis chargé de développer quelques onglets d'une application QlikView. Dans cet applicatif, de nombreux indicateurs sont calculés du type volume, CA, MSCV ...

    J'ai décidé de développer un onglet permettant de visualiser la tendance de ces indicateurs au cours d'une période sélectionnée.

    Le problème est que tous mes graphiques faisant intervenir la fonction "Aggr" possèdent un problème d’échelle.

    Par exemple lorsque que je saisie l'expression ci dessous (permettant de calculé le CA moyen par commande) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum( {<ORIGIN={"FACTURES"}>} CA_NNN)  /  Sum(TOTAL <%CLIENT_ID> aggr(count( {<ORIGIN={"FACTURES"}>} distinct [DATE FACTURATION]), %CLIENT_ID))
    J'ai l'impression que QlikView regroupe des données. Je m'explique : la dimension choisie est la région d'exploitation du client. Cette région d'exploitation se divise en plusieurs directeurs régionaux et derrière ces directeurs il y a des responsables de secteur ..

    Ma question est peut-on remplacer la fonction "aggr" par une autre fonction ?

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Coxtox Voir le message
    J'ai l'impression que QlikView regroupe des données.
    C'est justement l'intérêt de la fonction "aggr()" : regrouper les données selon les dimensions souhaitées.


    Pour votre cas, il suffit que vous ayez un identifiant de commande et de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum( {<ORIGIN={"FACTURES"}>} CA_NNN) / count( {<ORIGIN={"FACTURES"}>} distinct [NUMERO COMMANDE])

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Aussi simple que ça !! Ça marche je te remercie !!

    Une autre petite question, je trouve ça bête d'ouvrir une discussion uniquement pour ça.

    J'ai créé un nuage de point avec des bulles proportionnelles à la valeur de mon indicateur. Simplement je n'arrive pas a afficher les étiquettes info-bulles lorsque je passe ma souris dessus -_-

    PS : J'ai bien coché l'option "Texte sous forme d'info-bulle" pour l'expression de mon indicateur. Je travaille sur la version Qlikview 11.0011282.0

    Sauriez vous d'ou peut venir le problème ? Peut être un simple beug ?

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Chez moi, quand je passe ma souris sur une bulle, j'ai bien l'affichage des valeurs.
    Pour l'expression qui fait la taille de la bulle, l'intitulé de l'expression de préfixe pas la valeur, contrairement aux dimensions.


    (il vaut mieux créer un nouveau thread pour une nouvelle question, ça facilite la compréhension à ceux qui ont des problèmes similaires)

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    J'ai parlé trop vite !!! Une petite subtilité intervient

    J'ai bien un identifiant de commande mais cependant l'entreprise considère que le nombre de commandes correspond à la formule ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum(TOTAL <%CLIENT_ID> aggr(count( {<ORIGIN={"FACTURES"}>} distinct [DATE FACTURATION]), %CLIENT_ID))
    Je m'explique : ce nombre de commande par client est au maximum égal à 1 pour une journée ou pour un client.
    Par exemple : si un client passe une commande le 25 mai à 10h puis une seconde commande le 25 mai à 14h
    --> le nombre de commandes est égal à 2 tandis que le nombre d'achats est égal à 1.

    Ici le nombre de commandes correspond au nombre d'achat (règle de gestion dans le milieu)

    Donc je ne peux pas remplacé la formule par celle que vous m'avez donné !

    Simplement lorsque j'entre cette formule dans l'expression du graph QlikView agrège les données.

    Y aurait-il une expression semblable à celle énnoncée qui ne fait pas intervenir la fonction "aggr" ?

  6. #6
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Plusieurs choses :

    - Votre formule me semble juste, mais au niveau du "TOTAL <%CLIENT_ID>", ça dépend vachement de ce que vous avez en dimension de votre graphique. Il faut inclure dans le "TOTAL" toutes les dimensions selon lesquels vous voulez agréger. D'ailleurs, y a-t-il vraiment besoin de "TOTAL" ?

    - Est-ce que "DATE FACTURATION" contient bien uniquement la date (sans l'heure) ? Si oui, pourquoi ne pouvez vous pas compter le nombre de commandes simplement comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count( {<ORIGIN={"FACTURES"}>} DISTINCT [DATE FACTURATION] & ';' & %CLIENT_ID)
    (on créer dynamiquement un identifiant "date / client" et on compte les valeurs distinctes)
    ?

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Fantastique !

    Cette formule marche impeccable ! ça me sauve quelques graphs qui aurait pu être supprimé sans solution !
    Cette fois ci tous mes indicateurs semblent corrects !

    Je te remercie.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Je reviens vers vous concernant la formule que vous m'avez fourni !

    En fait cette formule marche bien mais les résultats mettent plus de temps à charger (du fait que Qlikview créé un identifiant dynamique à chaque fois puis le compte)

    Je voudrais juste savoir si il n'y aurait pas une autre alternative qui diminue le temps de chargement ?

    Merci d'avance.

  9. #9
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Vous pouvez créer ce même identifiant au chargement des données.
    Le calcul sera ainsi beaucoup plus rapide.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Merci pour l'info
    Je t'en demande bcp mais je ne connais pas trop la syntaxe du script .. j'ai essayé en mettant la formule dans une variable de la manière suivante mais la syntaxe n'est pas la bonne ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_DnCommande= 'count( {<ORIGIN={"FACTURES"}>} DISTINCT [DATE FACTURATION] & ';' & %CLIENT_ID)';
    ca aurait été un peu trop facile :p

  11. #11
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    C'est au chargement des données qu'il faut rajouter un champ.

    Si le chargement était
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LOAD 
    [DATE FACTURATION],
    %CLIENT_ID,
    ORIGIN,
    ...
    FROM ...;
    Il suffit de rajouter 1 ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LOAD 
    [DATE FACTURATION],
    %CLIENT_ID,
    [DATE FACTURATION] & ';' & %CLIENT_ID AS IDENTIFIANT_DE_COMPTAGE,
    ORIGIN,
    ...
    FROM ...;
    et dans le graphique, on utilisera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count( {<ORIGIN={"FACTURES"}>} DISTINCT IDENTIFIANT_DE_COMPTAGE)

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Effectivement le temps de chargement est nettement réduit je te remercie

    J'ai un autre petit problème .. décidément ..

    Pour vous expliquer le problème :

    J'ai construit un tableau de bord permettant de calculer plusieurs indicateurs de la forme ci dessous :
    Nom : tableaux bord.jpg
Affichages : 506
Taille : 57,1 Ko

    Mon problème est que lorsque je compare les résultats de ces indicateurs avec en sélection active l'année 2013 et tous les mois de cette année, je ne trouve pas les mêmes résultats que lorsque je met en sélection active l'année 2014 ( en regardant dans la colonne des résultats de l'année précédente 2013) et ceux pour tous les indicateurs.

    Par contre lorsque je ne sélectionne pas le mois courant mes résultats sont identiques. Je ne vois pas en quoi la sélection du mois courant influe sur les résultats des années 2013 / 2012 .. Des que je sélectionne le mois courant (ici juin), mes résultats sont faux pour les années 2013 et 2014.

    Si vous pouvez m'éclairer Merci d'avance.

  13. #13
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Sans connaitre :
    - la structure de données
    - les expressions qui posent problème (celle qui donne les valeurs de l'année courante et celle qui donne les valeurs de l'année précédente)

    ça me parait difficile de répondre.

    La différence vient forcément de données qui sont liées alors qu'elles ne devraient pas l'être (ou inversement).



    Merci de créer un nouveau fil de discussion lorsqu'il s'agit d'un nouveau problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ligne de code posant problème dans tous mes programmes
    Par yaya.gaga dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/11/2014, 20h55
  2. Réponses: 3
    Dernier message: 31/08/2010, 10h39
  3. [XL-2003] Problème dans la construction d'un graphique VBA
    Par Piernod dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/11/2009, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo