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 :

Comparer 2 années


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Comparer 2 années
    Bonjour à tous,

    voila je gere 3 années de Chiffre d'affaires dans QV (2010, 2011, 2012).
    J'ai crée un tableau dont les colonnes sont :
    - Ventes totales des 3 années : Sum ( {1< Year ={2010,2011,2012}>} CA)
    - Ventes de l'année N-1 de ma séléction : ?????
    - Ventes de l'années sélectionnée : sum (CA)

    Or je n'arrive pas à trouver la bonne formule pour ma seconde colonne (N-1). en effet, je veux que, si je selectionne l'année 2012 :
    - Ma colonne 1 ne change pas (somme des 3 années),
    - Ma colonne 2 m'affiche le CA total de 2011 (N-1)
    - Ma colonne 3 m'affiche le CA total de 2012.

    Mes colonnes 1 et 3 sont OK, par contre je n'arrive pas à coder ma colonne 2.

    Merci de votre aide.

    Patrick.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    sum( {1<Year = {$(#=Only(Year)-1)}>} CA).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Merci pour votre retour.

    Toutefois, ca ne fonctionne pas.

    les montants qui apparaissent correspondent à la somme des mes 3 années et ce quelque soit la selection...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Et avec
    sum( {$<Year = {$(#=Only(Year)-1)}>} CA).
    Ca donne quoi ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    ca me donne le même resultat que ma colonne 3.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Chez moi, ça marche pourtant !

  7. #7
    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 la version "Only", il faut qu'une année soit sélectionnée.

    Personnellement, j'utilise la fonction "max", et je mets tous mes paramètres en tant que chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sum({$ <Year={'$(=Max(Year) - 1)'}>} CA)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Ca ne fonctionne toujours pas.

    Y a t il un moyen de passer par des "if" ?

    Du genre si 2012 est selectionné, alors affiche 2011 etc...

    Je sais ce n'est pas joli mais...

    Merci.
    Patrick.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Je ne comprends pas pourquoi ça ne marche pas !
    Faites un copier/coller de cette formule, ça devrait marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum({$<Year = {$(=Max(Year)-1)}>} CA)
    Que contient le champ Year ? Une date ou seulement un nombre ?

    Pour ce qui est des IF, ils fonctionnent à partir des sélections faites.
    Si vous avez sélectionné 2012, le jeu d'enregistrements ne comportera plus l'année 2011, et vous ne pourrez donc pas récupérer son CA ...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci beaucoup, ca fonctionne !

    en fait, l'erreur venait de moi. Mon champ Year s'appelle en fait 'AnnéeFact'.

    Oui je sais, c'est la honte

    Merci à tous.

    Patrick.

  11. #11
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    Pour ma part si ça peux aider je fait comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Pour l année -2 vis à vis d aujourd hui :
    Sum({$<Facture.ANNEE={$(=YEAR(TODAY())-2)}>} ......mon champs de valeurs.....)
    Pour l année -1 vis à vis d aujourd hui :
    Sum({$<Facture.ANNEE={$(=YEAR(TODAY())-1)}>} ......mon champs de valeurs.....)
    Pour l année en cours :
    Sum({$<Facture.ANNEE={$(=YEAR(TODAY()))}>} ......mon champs de valeurs.....)
    Partie bonus :
    A ceci j'ai ajouté la possibilité de limiter les valeurs sur la même plage de date via une table :
    DATE_INFO :
    LOAD * INLINE [
    ID, PERIODE, PERIODE_V, PERIODE_S, PERIODE_S1, PERIODE_M, PERIODE_M1, PERIODE_A
    1, A date, 1, 1, 1, 1, 1, 1
    1, A date, 1, 1, 1, 1, 0, 1
    1, A date, 1, 1, 0, 1, 1, 1
    1, A date, 1, 1, 0, 1, 0, 1
    2, A fin de semaine, 1, 1, 1, 1, 1, 1
    2, A fin de semaine, 1, 1, 1, 1, 0, 1
    2, A fin de semaine, 1, 1, 0, 1, 1, 1
    2, A fin de semaine, 1, 1, 0, 1, 0, 1
    2, A fin de semaine, 0, 1, 1, 1, 0, 1
    2, A fin de semaine, 0, 1, 0, 1, 0, 1
    2, A fin de semaine, 0, 1, 1, 1, 1, 1
    3, A fin de semaine précédente, 1, 1, 1, 1, 1, 1
    3, A fin de semaine précédente, 1, 1, 1, 1, 0, 1
    3, A fin de semaine précédente, 0, 1, 1, 1, 0, 1
    3, A fin de semaine précédente, 0, 1, 1, 1, 1, 1
    4, A fin du mois, 1, 1, 1, 1, 1, 1
    4, A fin du mois, 1, 1, 1, 1, 0, 1
    4, A fin du mois, 1, 1, 0, 1, 1, 1
    4, A fin du mois, 1, 1, 0, 1, 0, 1
    4, A fin du mois, 0, 1, 1, 1, 0, 1
    4, A fin du mois, 0, 1, 0, 1, 0, 1
    4, A fin du mois, 0, 0, 0, 1, 0, 1
    4, A fin du mois, 0, 1, 1, 1, 1, 1
    5, A fin du mois précédent, 1, 1, 1, 1, 1, 1
    5, A fin du mois précédent, 0, 1, 1, 1, 1, 1
    5, A fin du mois précédent, 1, 1, 0, 1, 1, 1
    6, A fin d'année, 1, 1, 1, 1, 1, 1
    6, A fin d'année, 1, 1, 1, 1, 0, 1
    6, A fin d'année, 1, 1, 0, 1, 1, 1
    6, A fin d'année, 1, 1, 0, 1, 0, 1
    6, A fin d'année, 0, 1, 1, 1, 0, 1
    6, A fin d'année, 0, 1, 0, 1, 0, 1
    6, A fin d'année, 0, 1, 1, 1, 1, 1
    6, A fin d'année, 0, 0, 0, 1, 0, 1
    6, A fin d'année, 0, 0, 0, 0, 0, 1
    ];
    Qui à une liaison avec ma table des commandes comme suit :
    if (num(month(BASE_FACTURE.DATE_FACTURE))&if(len(day(BASE_FACTURE.DATE_FACTURE)) <> 2, '0'&day(BASE_FACTURE.DATE_FACTURE), day(BASE_FACTURE.DATE_FACTURE)) <= num(month(today()))&if(len(day(today())) <> 2, '0'&day(today()), day(today())), 1, 0) AS PERIODE_V,
    if (num(week(BASE_FACTURE.DATE_FACTURE-0)) <= num(week(today()-0)), 1, 0) AS PERIODE_S,
    if (num(week(BASE_FACTURE.DATE_FACTURE-0)) < num(week(today()-0)), 1, 0) AS PERIODE_S1,
    if (num(month(BASE_FACTURE.DATE_FACTURE)) <= num(month(today())), 1, 0) AS PERIODE_M,
    if (num(month(BASE_FACTURE.DATE_FACTURE)) < num(month(today())), 1, 0) AS PERIODE_M1,
    1 AS PERIODE_A
    Il vous reste juste à remplacer "Facture.ANNEE" par votre champs "année" de votre table pour la première partie et "BASE_FACTURE.DATE_FACTURE" par votre champs "date" dans la 3ème partie.

    Après avoir fait en sorte d'avoir des liaisons sur "PERIODE_V", "PERIODE_S", "PERIODE_S1", "PERIODE_M", "PERIODE_M1" et "PERIODE_A " entre votre table des commandes et la table fourni ici, vous pourrez comparer les CA entre le 1 janvier et la limite sélectionnée et ce sur les différentes années disponibles.

    PS : Les liaisons créent obligatoirement une table synthétique.

    Il y a peut être plus simple (je connait pas bien les fonctions de Qlikview) mais la méthode fonctionne bien.

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

Discussions similaires

  1. [AC-2010] Comparer 2 années dans un état
    Par John Parker dans le forum IHM
    Réponses: 6
    Dernier message: 04/08/2014, 17h09
  2. Comparer année n et n-1
    Par WinY57 dans le forum SSAS
    Réponses: 4
    Dernier message: 16/01/2013, 17h31
  3. [Toutes versions] Comment comparer une date à une autre de l'année N-1
    Par Oliv'83 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/10/2009, 15h38
  4. Comparer une année à l'année actuelle
    Par kilbragh dans le forum SQL
    Réponses: 3
    Dernier message: 15/10/2008, 15h59
  5. Réponses: 4
    Dernier message: 21/05/2007, 12h51

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