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 :

Jours décalés dans le calendrier


Sujet :

QlikView

  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 Jours décalés dans le calendrier
    Bonjour,

    Pour le besoin d'un de mes rapports j'ai du créer un calendrier détachée.
    Là j'ai besoin de récupéré les données de l'année N-1 c.à.d 2013.

    Je récupère des données mais , mes jours sont décalée , les données du 1er Janvier s'affiche dans celle du 2 janvier , celle du 2 janv dans la case du 3 janvier.
    Ma formule (ci-dessous) et en dimension j'ai mis Dates qui correspond à la dimension temps initial, DimDate étant le calendrier détachée .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum([Pages Vues/Jours])*(1+0.14284)*(1+0.03) *3.14*.073*0.42/100
    Quelqu'un aurai déjà eu ce souci ?

    Merci

  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,

    Si votre dimension est "Dates" dans votre graphique, je ne comprends pas comment vous faites pour obtenir les données de l'année précédente, étant donné que les données sont forcément agrégées par la dimension "Dates".

  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
    Je l'ai dit car peut être que le souci peux venir de ces deux dimensions et à titre d'info (peut être que je me suis pas bien pris)

    Sans la dimension Dates j'ai bien mes données, car comme vous avez dit :
    étant donné que les données sont forcément agrégées par la dimension "Dates".
    Donc ça me donne bien les données que je veux.
    Cependant, je veux récupérer les données du mois entier c.à.d Mai 2013 par exemple.
    Or je ne peux récupérer en totalité les données du mois mai 2013. Il s'arrête au 22 Mai.
    dans ma base de donnée les derniers donnée MAJ sont justement au 22 Mai.
    Donc ma seconde Dimension (DimDate) je pense qu'il doit me bloqué à un niveau.



    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
    Citation Envoyé par mano_bi Voir le message
    Donc ma seconde Dimension (DimDate) je pense qu'il doit me bloqué à un niveau.
    Je ne comprends pas pourquoi vous mettez 2 dimensions de date en tant que dimension.
    Vous utilisez "DimDate" dans les dimensions, mais il n'y a aucun référence à DimDate dans votre expression --> cette dimension ne sert à rien.


    Pour faire ce que vous voulez, il faut utiliser DimDate en dimension, et dans les expressions, faire des liens entre "dates" et "DimDate"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(if(DimDate = Dates, [Pages Vues/Jours]))

  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
    Ci-joint un modèle de rapport et une partie des données .

    Je ne comprends pas pourquoi vous mettez 2 dimensions de date en tant que dimension.
    Je n'ai pas de dimensions dates en tant que dimensions ( vous pouvez le voir sur le rapport en pj)

    Pour faire ce que vous voulez, il faut utiliser DimDate en dimension, et dans les expressions, faire des liens entre "dates" et "DimDate"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(IF(DimDate = Dates, [Pages Vues/Jours]))
    J'applique votre formule mais il y à quelque souci...

    En fait , J'ai deux tableaux :
    1 - Un qui fait la somme de mes expressions sur le mois en cour(Mai). Sur ce points il y à pas de souci j'ai les bons chiffres.
    2 - Et le deuxième qui fait la somme de mes expressions mais sur les données du mois de l'année N-1, soit Mai 2013. C'est sur celui-ci que j'ai quelque beug , comme par exemple, j'ai la somme mais uniquement jusqu'au 3 mai et pas plus pourtant le Moi est en sélectionner.
    Ce prévisionnel permet de voir le volume de l'année N-1 et celle de l'année en cour.


    Je sais pas si j'ai pu apporté plus d'infos à mon problème.

    Merci
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

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

    Dans votre fichier, je n'ai aucune idée des formules que vous utilisez, ni de la façon dont sont liées vos tables.
    Il est donc difficile de vous aider dans la correction des formules.

    Dans le jeu de données que vous avez fourni, il n'y a qu'un mois de l'année 2014.

    Dans votre tableau, il n'y a pas de dimension de date.


    Si je prends ces données :
    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
    LOAD 
    	year(Date) AS Année,
    	month(Date) AS Mois,
    	*
    ;
    LOAD * INLINE [
    Date, Valeur
    01/01/2013, 20130101
    01/02/2013, 20130201
    01/03/2013, 20130301
    01/04/2013, 20130401
    01/05/2013, 20130501
    02/05/2013, 20130502
    29/05/2013, 20130529
    30/05/2013, 20130530
    01/06/2013, 20130601
    01/07/2013, 20130701
    01/08/2013, 20130801
    01/09/2013, 20130901
    01/10/2014, 20141001
    01/11/2014, 20141101
    01/12/2014, 20141201
    01/01/2014, 20140101
    01/02/2014, 20140201
    01/03/2014, 20140301
    01/04/2014, 20140401
    01/05/2014, 20140501
    02/05/2014, 20140502
    29/05/2014, 20140529
    30/05/2014, 20140530
    01/06/2014, 20140601
    01/07/2014, 20140701
    ];
    l'expression
    me donnera bien les données de l'année / mois sélectionné.

    L'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =sum({$ <Année={$(=only(Année)-1)}>} Valeur)
    me donnera bien les données de l'année précédant celle sélectionnée / mois sélectionné (et ne fonctionnera que quand 1 année est sélectionnée).

  7. #7
    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
    Dans votre fichier, je n'ai aucune idée des formules que vous utilisez, ni de la façon dont sont liées vos tables.
    Il est donc difficile de vous aider dans la correction des formules.
    Si j'arrive avec cette formule pour les autres c'est Ok , cette formule concerne la ligne TOTAL Prévi ( de mon tableau).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum((IF(DimDate = Dates,[Pages Vues/Jours])))*(1+0.14284)*(1+0.03) *3.14*.073*0.42/100
    Mais en fait cette formule,marche quand il s'agit des données quotidienne, mais ce que je souhaite et je comprend pas pourquoi ça marche c'est que je veux une somme de cette formule mais au mois de Mai 2013.
    Pour celà je pense que DimDate doit coincé car DimDate est mon calendrier détachée. et comme Les données de Mai 2014 s'arrête au 25 Mai 2014, c'est peut être à cause de celà que ça coince.
    je sais pas , ce sont des suppositions.

    Mes tables sont liés Par la dimension de temps. Le tableau de gauche est lié à la sélection active DimDate , celui de droite à la sélection Mois et Année.

    Dans le jeu de données que vous avez fourni, il n'y a qu'un mois de l'année 2014.
    C'est tout le mois de Mai 2013 que j'ai mis. je viens de revoir le jeux de donnée, étrange. Je joind à nouveau peut être que je me suis trompé.
    Fichiers attachés Fichiers attachés

  8. #8
    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
    Excusez-moi, je voulais dire "que le mois de mai 2013".


    Comme je n'arrive pas à comprendre votre modèle de données, je ne peux pas vous aider plus.
    Dans votre exemple, vous montrez un tableau qui n'a pas de dimension de temps. Je ne comprends donc pas pourquoi dans votre formule vous mettez un "IF(DimDate = Dates,".

    Je ne sais pas comment vous avez construit votre "DimDate", mais si vous l'avez construit en faisant un "LOAD DISTINCT Date RESIDENT mes_donnees WHERE année = 2014", alors ce calendrier n'aura que les dates qui sont présentes dans votre table "mes_données".
    Il suffit donc qu'il y ait des jours pour lesquels vous n'ayez pas de données pour que votre calendrier détaché soit troué (il lui manque des dates).

    Il faut donc construire le calendrier d'une manière différente afin qu'il contienne toutes les dates, et pas uniquement les dates pour lesquelles vous avez des données en 2014.

    J'ai donné un exemple dans ce post.

  9. #9
    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
    Je ne sais pas comment vous avez construit votre "DimDate", mais si vous l'avez construit en faisant un "LOAD DISTINCT Date RESIDENT mes_donnees WHERE année = 2014", alors ce calendrier n'aura que les dates qui sont présentes dans votre table "mes_données".
    Il suffit donc qu'il y ait des jours pour lesquels vous n'ayez pas de données pour que votre calendrier détaché soit troué (il lui manque des dates).
    Le calendrier à été construis comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DimDate:
    LOAD 
        DISTINCT Date AS DimDate
    RESIDENT 'omniture Global Site'
    WHERE year(Date) = 2014 
    ORDER BY Date ASC;
    ....alors ce calendrier n'aura que les dates qui sont présentes dans votre table "mes_données"
    Pourtant dans cette table il y à des données justement de 2013. En fait c'est même dans cette table que je vais chercher les données de 2013.


    Merci

  10. #10
    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
    Oui, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE year(Date) = 2014
    filtre sur les données... de l'année 2014 !

    Et ce n'est pas parce qu'il y a "les données d'une année" qu'il y a forcément toutes les dates.
    Typiquement, pour des ventes, il n'y a pas de ventes les dimanches et jours fériés, qui ne tombent pas à la même date chaque année. D'où l'intérêt de s'assurer qu'il y a toutes les dates dans son calendrier détaché.

  11. #11
    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
    Oui, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE year(Date) = 2014
    filtre sur les données... de l'année 2014 !

    Et ce n'est pas parce qu'il y a "les données d'une année" qu'il y a forcément toutes les dates.
    Typiquement, pour des ventes, il n'y a pas de ventes les dimanches et jours fériés, qui ne tombent pas à la même date chaque année. D'où l'intérêt de s'assurer qu'il y a toutes les dates dans son calendrier détaché.
    Merci PhunkyBOB, effectivement et encore une fois tu as raison.
    Cependant j'ai une question encore (2 à vrai dire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DimDate:
    LOAD 
    	date(iterno() - 1 + YearStart(today())) AS DimDate
    AUTOGENERATE 1 
    WHILE iterno() - 1 + YearStart(today()) <= YearEnd(today());
    Avec ce calendrier ci-dessus, si je veux obtenir une sélection sur le Mois et l'année , comment faire ?

    Sinon le sujet est quasi résolus, mon autre question sera un nouveau post.Car c'est pas trop dans le thème de ce post.

    Merci

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

Discussions similaires

  1. [XL-2010] MFC des jours fériés dans un calendrier
    Par corinthien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2015, 18h39
  2. Affichage des jours dans un calendrier
    Par palisse dans le forum Flash
    Réponses: 0
    Dernier message: 01/03/2009, 20h26
  3. Date du jour en rouge dans mon calendrier
    Par ns_deux dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/11/2007, 17h49
  4. Identication des jours fériés dans un calendrier
    Par Philippe GARNIER dans le forum Access
    Réponses: 2
    Dernier message: 28/07/2006, 14h29
  5. Couleur pour certains jours dans un calendrier
    Par striker90 dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/05/2006, 21h22

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