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 :

Astuce Tableau croisé dynamique


Sujet :

QlikView

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 80
    Points : 63
    Points
    63
    Par défaut Astuce Tableau croisé dynamique
    Bonjour à toute la communauté.

    Je viens vers vous pour un "petit problème" que j'ai avec mon tableau croisé dynamique.
    J'essaye de m'expliquer au mieu.

    Alors, j'ai créé mon tableau croisé dynamique dans lequel je souhaite faire du reporting. Mon tableau doit être comme celui là :

    Colonne A : la liste des opérations
    Colonne B : les populations (une opération peut avoir plusieurs populations)
    Colonne C : les quantités (par population)
    Colonne D : le cout total (par population)
    colonne E : type de produit que je mettrai en colonne.

    Ensuite, j'aurai 2-3 expressions que je calculerai par type de produit.

    Pour le moment, j'arrive à afficher les colonnes A, B C et E sans problème. Dès que j'essaye d'ajouter le cout total, je n'ai plus mes résultats car le cout total est basé par population et QV le lie aux quantités.
    J'arrive à sortir ceux là en créant un tableau simple mais du coup, j'aurai plus mes produits en colonne. Mes connaissances s'arrêtent là.
    Quelqu'un aurait une idée ?

    Merci d'avance de votre aide.

  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
    Bonjour,

    Il faut que vous créiez une dimension calculée avec votre formule de coût total, sans oublier de préciser les agrégations à faire.
    Quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    aggr(
    sum(cout)
    , opération, population, quantité
    )

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Oui, je l'ai fait. en revanche, je n'ai pas mes sommes partielles sur les dimensions...

    Ce n'est pas possible ça, je pense, si ?

  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
    Si vous voulez les sous-totaux, il faut que ce soit une expression. Mais à ce moment, ça sera affiché pour toutes les valeurs de dimension (produit), donc redondance de données.

    Il est aussi possible de bidouiller pour faire une fausse dimension qui serait les produits + un produit "total", et faire une expression avec une condition pour savoir ce qu'on veut afficher.


    Avec les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    data:
    LOAD * INLINE [
    Dim1, Dim2, Valeur
    A, aa, 1
    A, bb, 2
    A, cc, 3
    B, aa, 4
    B, bb, 5
    B, cc, 6
    ];
    On fait un tableau croisé avec comme dimensions :
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =valuelist($(=chr(39) & concat({1} distinct Dim2, chr(39) & ', ' & chr(39)) & chr(39)), 'TOTAL')
    Et comme expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(valuelist($(=chr(39) & concat({1} distinct Dim2, chr(39) & ', ' & chr(39)) & chr(39)), 'TOTAL') = 'TOTAL', 'calcul du total', 
     
    sum(if(Dim2 =  valuelist($(=chr(39) & concat({1} distinct Dim2, chr(39) & ', ' & chr(39)) & chr(39)), 'TOTAL'), Valeur))
    )
    On obtiendra alors :


    L'expression sera quand même assez lourde à maintenir (et à calculer).

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 80
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    En effet, c'est une bonne astuce PhunkyBob.
    Malheureusement, je travaille avec des millions et des millions de données pour avoir un résultat rapide.

    Je vais donc changer le modèle je pense.

    Merci pour votre aide PhunkyBob

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/11/2007, 10h47
  2. filtrer tableau croisé dynamique sous excel
    Par kernel57 dans le forum Excel
    Réponses: 7
    Dernier message: 17/11/2006, 14h18
  3. Tableau croisé dynamique
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 26/12/2005, 18h05
  4. tableau Croisé Dynamique
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 10h36
  5. tableau croisé dynamique sous delphi, comment ?
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2005, 09h33

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