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 :

Total dans un TCD


Sujet :

QlikView

  1. #1
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 112
    Points : 54
    Points
    54
    Par défaut Total dans un TCD
    Bonjour,

    Je n’arrive pas à afficher le cumul de mes lignes dans le total d’un TCD, voici mon expression de base :
    [Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC)

    La colonne Marge dégagée peut parfois être NULL, le set analysis me permet d’aller chercher le % de prime à verser.
    Dans la ligne total de mon TCD je voudrais retrouver le cumul des lignes supérieur et non pas le cumul de la marge dégagé x le % de prime à verser…

    J’ai essayé pleins d’expressions différentes mais rien ne fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum([Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC))
    Cette expression renvoi un NULL sur chaque lignes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(Dimensionality()=0,
    RangeSum(top),
    if(IsNull([Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC)),0
    ,([Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC)))
    )
    Renvoie les bons résultats mais un 0 sur la ligne total

  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,

    Vous dites que votre formule initiale est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC)
    Dans un TCD, le principe du total partielle, c'est que l'expression est calculé au niveau dimensionnel supérieur.
    Or dans votre expression, vous n'utiliser aucune fonction d'agrégation sur votre marge dégagée. Le total ne peut donc logiquement être calculé.

    Supposons que vous ayez les données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    LOAD * INLINE [
    Date, Produit, Marge dégagée
    01/01/2014, Marteau, 10
    01/01/2014, Tournevis, 5
    01/01/2014, Scie, 7
    01/02/2014, Marteau, 12
    ];
    et que votre TCD ait comme expression "Produit".

    Si vous mettez comme expression simplement
    Vous aurez la ligne pour "Tournevis", pour "Scie" (car il n'y a qu'une valeur possible), mais pour "Marteau", il y a "10" et "12", donc QlikView ne sait pas ce que vous souhaitez (le min ? le max ? la somme ? la moyenne ?). Ne sachant pas, il retournera "-".
    Même principe pour le total : ne sachant pas ce que vous voulez afficher, QlikView n'affichera rien.

    En revanche, si vous mettez comme expression
    cela fonctionnera (si vous souhaitez avoir la somme des marges).



    Pour votre calcul de prime, j'ai du mal à comprendre ce qu'il représente.
    La prime peut être variable selon les sélections ?


    Peut-être qu'avec un échantillon de données (LOAD INLINE), il serait plus facile de vous aider.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 112
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par »Bob »
    Dans un TCD, le principe du total partielle, c'est que l'expression est calculé au niveau dimensionnel supérieur. Or dans votre expression, vous n'utiliser aucune fonction d'agrégation sur votre marge dégagée. Le total ne peut donc logiquement être calculé.
    Oui j’ai bien compris cet aspect-là, j’ai dans un premier temps posté la formule sans fonction d’agrégation pour que ce soit plus clair, puis dans la suite du message j’ai justement ajouté des exemples contenants des fonctions d’agrégations mais cela ne fonctionne pas…

    1.
    En revanche, si vous mettez comme expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sum([Marge dégagée])
    cela fonctionnera (si vous souhaitez avoir la somme des marges).
    cela ne fonctionne pas dans mon cas… voir les exemples ci-dessous :


    Citation Envoyé par »David »
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Sum([Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC))
    Cette expression renvoi un NULL sur chaque lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     IF(Dimensionality()=0,
    RangeSum(top),
    IF(IsNull([Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC)),0
    ,([Marge dégagée]*only({<Prime_Id_GRC={20},Primes_TypeValeur_GRC={1}>} Primes_valeur_GRC)))
    )
    Renvoie les bons résultats mais un 0 sur la ligne total




    Voici un échantillon de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     LOAD * INLINE [
        Nom, CA, Marge, Obj, Prime, Mois
        TOTO1, 200000, 0.3, 180000, 0.4, Janvier
        TOTO2, 300000, 0.3, 350000, 0.4, Janvier
        TOTO3, 200000, 0.3, 250000, 0.4, Janvier
        TOTO4, 400000, 0.3, 350000, 0.4, Janvier
    ];
    Et voici le tableau :

    Nom : Capture.JPG
Affichages : 234
Taille : 25,5 Ko

    Dans la colonne prime le total doit être de 12 000 et non pas 14 4400.

    Merci

  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
    OK pour les données, mais quelles sont les expressions associées ?

    Parce que je n'arrive pas à retrouver les mêmes chiffres que vous ne serait-ce que pour la "Marge dégagée".

    J'ai essayé :
    - l'expression qu'un débutant mettrait intuitivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(sum(Obj) - sum(CA) > 0, 
    	(sum(Obj) - sum(CA)) * only(Marge)
    , 0)
    - l'expression correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sum(aggr(
    if(sum(Obj) - sum(CA) > 0, 
    	(sum(Obj) - sum(CA)) * only(Marge)
    , 0), Nom, Mois))

  5. #5
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 112
    Points : 54
    Points
    54
    Par défaut
    Ah j’ai compris d’où vient le problème…

    En fait dès le départ j’ai voulu faire mon expression avec le sum(aggr( je me doutais bien qu’il fallait passer par ça, mais cela me retournait systématiquement un NULL... C’est parce que j’utilisais les noms de colonnes dans mes expressions ! En remettant l’ensemble de mes expressions cela fonctionne.

    Merci

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

Discussions similaires

  1. [XL-2010] Pourcentage d'une valeur par rapport au sous total dans un TCD
    Par Denis_67 dans le forum Excel
    Réponses: 6
    Dernier message: 10/06/2015, 12h23
  2. [XL-2010] Total valeurs les plus élevées plus valeurs totales dans un TCD
    Par Denis_67 dans le forum Excel
    Réponses: 2
    Dernier message: 03/03/2015, 14h50
  3. [CR 10] Inserer un total dans un TCD
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 19/01/2015, 08h30
  4. [XL-2010] Total valeurs dans un TCD
    Par CmzxNene dans le forum Excel
    Réponses: 7
    Dernier message: 01/06/2012, 08h15
  5. Inclure colonne total d'un TCD dans un GCD
    Par Lucorah dans le forum Excel
    Réponses: 1
    Dernier message: 12/05/2010, 11h03

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