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 :

Calculer le fractile dans un tableau croisé dynamique


Sujet :

QlikView

  1. #1
    Candidat au Club
    Homme Profil pro
    database manager
    Inscrit en
    Octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : database manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Calculer le fractile dans un tableau croisé dynamique
    Bonjour à tous,

    Je me heurte à un problème de syntaxe (de set analysis et de la fonction Aggr()).

    Dans un tableau simple, j'obtiens les valeurs attendus pour le calcul de la median et du fractile par Family (en ordonnées).
    Median (Aggr (count(distinct([Serious Cases])),Family,[MRA Date Year-Month]))
    Fractile(Aggr(count(distinct([Serious Cases])),Family,[MRA Date Year-Month]),0.75)

    Mais lorsque je passe à tableau croisée dynamique où je veux ajouter une dimension (les dates) en abscisse la fonction fractile ci-dessus ne marche par bien :
    Fractile(TOTAL Aggr(count (distinct([Serious Cases])),[MRA Date Year-Month],Family),0.75)

    Pour que ce soit plus claire : ci-joint un screenshot de mon problème
    Nom : Pb.jpg
Affichages : 332
Taille : 194,7 Ko

    J'ignore ce qui cloche dans ma fonction fractile. Pourriez-vous m'aider ?

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 651
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 651
    Points : 2 531
    Points
    2 531
    Billets dans le blog
    6
    Par défaut
    Ce n'est jamais très conseillé de mettre un calcul en tant que dimension, pour des raisons de performances.

    Néanmoins, si vous êtes obligé de le faire, il faut impérativement agréger par toutes les dimensions qui précèdent.

    En supposant que l'expression qui fonctionne soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Fractile(Aggr(count(distinct([Serious Cases])),Family,[MRA Date Year-Month]),0.75)
    il faudra alors mettre en dimension

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =aggr(Fractile(Aggr(count(distinct [Serious Cases]), Family, [MRA Date Year-Month]),0.75), Family)
    (à ajuster en fonction de votre modèle)

  3. #3
    Candidat au Club
    Homme Profil pro
    database manager
    Inscrit en
    Octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : database manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour PhunkyBob,

    C'est génial... une Aggr() dans une Aggr(). Jamais je n'aurai pensé à procéder ainsi. Je prends note de votre mise en garde sur les performances (pour l'instant ce ne sont que des dizaines de milliers de cas serious)

    Suite à votre suggestion, la bonne formule dans ce contexte est donc (en dimension du tableau croisé dynamique)
    =aggr(Fractile(Aggr(count(distinct [Serious Cases]), Family, [MRA Date Year-Month]),0.75),Family)
    Et dans chaque cellule (afin de mettre en valeur tout ce qui dépasse la fractile correspondant à la family), c'est donc :
    =If (count(distinct([Serious Cases])) >= aggr( NODISTINCT Fractile(Aggr(count(distinct [Serious Cases]), Family, [MRA Date Year-Month]),0.75),Family),RGB(255,0,0))
    Merci beaucoup++

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

Discussions similaires

  1. Calculer une fréquence dans un tableau croisé dynamique
    Par SteffieLili dans le forum QlikView
    Réponses: 1
    Dernier message: 27/05/2014, 17h18
  2. [DeskI V5-V6] Calculer des sous totaux dans un tableau croisé dynamique
    Par Tancredoc dans le forum Débuter
    Réponses: 17
    Dernier message: 09/06/2010, 15h22
  3. Réponses: 19
    Dernier message: 23/03/2009, 14h58
  4. [A-02] Insérer un champ calculé dans un tableau croisé dynamique
    Par atoffoli75 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/11/2008, 09h55
  5. Réponses: 4
    Dernier message: 03/08/2007, 14h48

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