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 :

Somme sur date


Sujet :

QlikView

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut Somme sur date
    Bonjour,

    Et avant , merci à ceux qui lirons et me répondrons.

    Pour mieux comprendre mon souci/souhait , il faut voir le rapport excel en pj.

    En quelque mots ce que je souhaite faire :

    Dans la colonne en "Attendu" , j'ai des champs en jaunes.
    Ces derniers je les obtiens en fesant la somme des montants jusqu'au jours J + les valeurs N-1 (qui sont au dessus).

    Par exemple : Pour la ligne 43 "Réel/Atterrissage indirect" la formule excel est la suivante : =SOMME(E43:AE43;AF42:AI42) .

    Je sais pas si j'ai pu être clair mais le rapport est un peu plus parlant.Ainsi c'est le même calcul que je souhaite éffectué.
    Pour le jeu de donnée vous pouvez utilisé ce qui est dans le rapport .


    Merci à vous
    Fichiers attachés Fichiers attachés

  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,

    J'ai du mal à faire le lien entre votre description du besoin et le fichier Excel.
    "Impression indirecte" veut dire "données de l'année précédente" ?

    Quel est votre modèle de données ?

    Avec une dimension de date séparée et des "if" dans votre expression, cela ne fonctionne pas ?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Bonjour,

    J'ai du mal à faire le lien entre votre description du besoin et le fichier Excel.
    "Impression indirecte" veut dire "données de l'année précédente" ?
    Exactement "Impression indirecte" veut dire "données de l'année précédente".
    Comme vous pourrez le constaté toute les lignes en blanc sont remplis pour l'ensemble du mois,justement parce-que ce sont les données de Mai 2013.
    Les lignes en blanc ce sont les valeurs de l'année N-1 soit Mai 2013. Pas de souci de calcul à ce niveau.
    Les lignes en saumon sont les valeurs de l'année N soit Mai 2014. Et c'est dans les cellules en jaunes que je galère, car c'est là que dois s'afficher le résultat.

    exple:
    si je cherche le calcul de la ligne "Impression indirecte" [colonne attendu] :
    je fais la somme de mes impressions jusqu'au 27 mai = 537535754 + la sum des "impressions" de 2013 (au dessus) c.a.d(28,29,30,31) les 19 024 797 + 18 185 701 + 17 169 761 + 17 307 035. ce qui me donnerais un total de 609 223 048.

    donc pour le 28 je refais la somme des impressions de mai 2014 jusqu'au 28 + sum la somme du 29,30 et 31(au dessus) soit 18 185 701 + 17 169 761 + 17 307 035.

    pour le 29 je fais sum des impressions jusqu'au 29 + les impressions de 2013 mais du 30 et 31 (au dessus )soit 17 169 761 + 17 307 035.

    Pour le 30, je ferais sum des impressions jusqu'au 30 + sum des impressions Mai 2013(au dessus) soit les 17 307 035


    Quel est votre modèle de données ?
    Pour l'année 2013 ce sont toute les valeurs dans les cellules en blanc.
    Pour 2014 ce sont toute celle qui sont dans les cellules en saumon.

    Mes 2 tables sont reliées par les dates, et j'ai un calendrier détachée DimDate.
    Pour avoir un jeu de donnée ce que je peux faire c'est reprendre les valeurs qui sont déjà dans les cellules , car toute les données sont dedans.

    En revanche pour faire leur somme:
    Pour les lignes en blanc c'est la somme classique sur les données de 2013. (ça marche)
    Pour les lignes en saumon , je fais la somme des valeurs jusqu'au jours J + le reste des valeurs du mois mais en prenant les données de 2013 (donc mai 2013).

    Avec une dimension de date séparée et des "if" dans votre expression, cela ne fonctionne pas ?
    J'ai essayer avec des if , mais peut être que je m'y prend mal,je tombe pas sur les bonnes valeurs. J'ai justement une dimension date (DimDate) séparée et c'est justement grâce à ce calendrier séparée que j'arrive à récupérer mes données pour les résultats au quotidien.

    Mais pour faire des sommes donc pour la colonne Attendu là ça coince.


    Merci à vous

  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
    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
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Data:
    LOAD * INLINE [
    Date, Impressions indirect
    01/05/2013, 19812335,87
    02/05/2013, 19285327,59
    03/05/2013, 20266713,82
    04/05/2013, 24541590,12
    05/05/2013, 24216170,25
    06/05/2013, 19949453,32
    07/05/2013, 20861471,36
    08/05/2013, 21391639,24
    09/05/2013, 19965429,4
    10/05/2013, 19555107,76
    11/05/2013, 21958332,73
    12/05/2013, 20101381,23
    13/05/2013, 18136156,1
    14/05/2013, 19262247,14
    15/05/2013, 17714636,9
    16/05/2013, 15464214,06
    17/05/2013, 16898952,92
    18/05/2013, 18851083,65
    19/05/2013, 22713787,35
    20/05/2013, 18974326,93
    21/05/2013, 18403823,57
    22/05/2013, 17525190,43
    23/05/2013, 16279290,94
    24/05/2013, 16612727,19
    25/05/2013, 17744303,68
    26/05/2013, 17549816,96
    27/05/2013, 19198577,56
    28/05/2013, 19024796,88
    29/05/2013, 18185700,56
    30/05/2013, 17169761,1
    31/05/2013, 17307035,05
    ];
     
    CONCATENATE (Data)
    LOAD * INLINE [
    Date, Réel
    01/05/2014, 23653383
    02/05/2014, 20714933
    03/05/2014, 19134430
    04/05/2014, 20811157
    05/05/2014, 21803919
    06/05/2014, 21373400
    07/05/2014, 19832878
    08/05/2014, 22694025
    09/05/2014, 20412354
    10/05/2014, 19943862
    11/05/2014, 24071704
    12/05/2014, 23313113
    13/05/2014, 21571425
    14/05/2014, 20278438
    15/05/2014, 18390450
    16/05/2014, 16611911
    17/05/2014, 16131854
    18/05/2014, 18421159
    19/05/2014, 21170255
    20/05/2014, 20093474
    21/05/2014, 21058857
    22/05/2014, 18539832
    23/05/2014, 16479148
    24/05/2014, 15993963
    25/05/2014, 17404190
    26/05/2014, 19306643
    27/05/2014, 18324997
    ];
    et un calendrier séparé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DimDate:
    LOAD 
    	date(Recno() + makedate(2014, 5, 1) - 1) AS DimDate
    AUTOGENERATE 31;
    Je fais un graphique de type "tableau droit".
    Je mets "DimDate" en dimension.
    En expression 1, je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(if(DimDate = Date, Réel))
    ce qui donne les valeurs de l'année courante.

    En expression 2, je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(if(AddMonths(DimDate, -12) = Date, [Impressions indirect]))
    ce qui donne les valeurs de l'année précédente.

    En expression 3, je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(
    count(if(DimDate = Date, Réel)) > 0,
    sum(if(DimDate = Date, Réel)),
    sum(if(AddMonths(DimDate, -12) = Date, [Impressions indirect]))
    )
    et je coche "Somme" dans la partie "Totaux".
    Cette dernière expression regardera s'il y a un chiffre pour l'année coutante, et si ce n'est pas le cas, prendra le chiffre de l'année précédente.


    S'il y a besoin de mettre l'expression dans un tableau croisé et que le total est en mode "sous-total", cette expression ne sera pas bonne, car le sous-total sera "la même expression calculée au niveau supérieur", ce qui fait que ça prendra en compte les valeurs de l'année courante et les valeurs de l'année précédente.
    Il faut mettre l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sum(aggr(
    if(
    count(if(DimDate = Date, Réel)) > 0,
    sum(if(DimDate = Date, Réel)),
    sum(if(AddMonths(DimDate, -12) = Date, [Impressions indirect]))
    ), DimDate))
    qui fera la même chose, mais pré-calculera les valeurs pour chaque date avant d'en faire la somme.


  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut
    Merci PhunkyBob,

    ça marche, mais j'ai un petit intrus :

    Dans le champ de cette formule, le 01/05/2014 j'ai un 23.236.605 qui apparait et le nombre d'impression du 31 mai 2013 soit 17 037 305 n'apparait, en faite que je chasse la valeur du 1 er mai 2013 (cf tableau) pour que celle du 31 mai 2013 soit intégré.

    ce qui donne les valeurs de l'année courante.

    En expression 2, je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(IF(AddMonths(DimDate, -12) = Date, [Impressions indirect]))
    J'ai mis le tableau en pj, bien entendu il y a eu des mise à jours au niveau des données.

    Merci
    Images attachées Images attachées

  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
    Désolé, je ne comprends pas votre problème.

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

Discussions similaires

  1. Requête Somme avec critère sur date
    Par Pixel dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/05/2014, 20h02
  2. Effectuer une somme sur un intervalle de dates
    Par LouFeq dans le forum Développement
    Réponses: 2
    Dernier message: 24/10/2013, 14h02
  3. Somme sur Date
    Par kedmard dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/01/2012, 13h34
  4. Réponses: 9
    Dernier message: 04/01/2007, 11h58
  5. Somme sur des dates (champs dejà dédié)
    Par laurent.w dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2007, 10h25

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