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 :

Création d'alerte Qlikview


Sujet :

QlikView

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Création d'alerte Qlikview
    Bonjour à tous,

    Pour commencer, merci de prendre le temps de lire mon post est de tenter de m'aider =) .


    J'aimerai créer une alerte qui permettra dès l'ouverture de Qlikview d'avoir les informations importantes.
    Je m'explique, par exemple, j'étudie le nombre de nouveaux clients au trimestre, si le nombre de clients du dernier trimestre est significativement différent de la moyenne de l'année précédente, je voudrais un message, ou l'ouverture automatique du graphique qui mettrait en évidence ce changement significatif.

    Mes tables ont toutes été chargées depuis un fichier .xls, je vois comment gérer cette problématique en SQL :

    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
    Select sum(Nb_Nv_cli) as NbCliCrt
    from [$base_V2], [$Temps], [$Clés]
    where [$Temps].Année=[$Clés].Année
    and [$Temps].Mois=[$Clés].Mois
    and [$Clés].Clé=[$base_V2].Clé 
    and [Mois-année] = (select Max([Mois-année]) from [$temps])
    group by [Mois-année];
     
    Select avg(sum(Nb_nv_cli)) as nbCliOld
    from [$base_V2], [$Temps], [$Clés]
    where [$Temps].Année=[$Clés].Année
    and [$Temps].Mois=[$Clés].Mois
    and [$Clés].Clé=[$base_V2].Clé 
    where [Mois-année] <> (Select Max([Mois-année]) from [$temps])
    group by [Mois-Année];
    Je sais qu'ici je n'ai pas résolu le problème de la moyenne sur un an mais ce n'est pas ce qui m'importe le plus.

    J'aimerai récupérer ces variables pour pouvoir les utiliser dans la création de mes alertes, j'ai tenté de le mettre dans l'éditeur de Script, il me signale un problème de connexion avec ma base ODBC. Les noms de tables ont été automatiquement générés par QV lors de l'importation depuis Excel, elles ont pris le nom des feuilles.

    J'espère avoir été assez claire, je vous remercie par avance de votre réflexion et de votre coup de main.

    Maw

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    J'ai creusé un peu (beaucoup) et j'ai réussi à avancer mais me voilà de nouveau bloquée.
    En fait j'ai cette requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select sum(Nb_nv_cli) as NbCliCrt
    from [Base_V2$],
    [Clés$],
    [Temps$]
    where [Clés$].[Syn 1$]=[Temps$].[Syn 1$]
    and [Clés$].Clé=[Base_V2$].Clé
    and MoisAnnee=(Select max(MoisAnnée) as MaxDate
    from [Temps$])
    group by MoisAnnee, Produits;
    Et il me donne ce message d'erreur :
    ErrorSource: Microsoft OLE DB Provider for ODBC Drivers, ErrorMsg: [Microsoft][Pilote ODBC Excel] Trop peu de paramètres. 4 attendu.

    Je pense que j'ai un problème de jointure dans mes tables mais je ne comprends pas bien où.

    Je vous mets un screenshot de mon schéma relationnel en PJ.

    Merci d'avance

    Maw
    Images attachées Images attachées  

  3. #3
    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
    Tu essaies de faire une requête SQL à partir de plusieurs tables. De plus les tables $syn sont des tables internes à Qlikview qui ne devraient pas être utilisées.

    Le mieux que tu aie à faire, c'est de charger tes tables de fait uniquement.

    Comme Qlikview utilise les noms de champs identiques pour créer ses jonctions de tables, il suffit d'utiliser AS dans ton script pour renommer éventuellement certains champs.

    Une fois cela fait, il suffira de créer des graphiques où on pourra utiliser les dimensions et expressions que l'on voudra !

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci de votre réponse,

    Je vais essayer donc de n'avoir que mes tables de faits.
    Si je ne me trompe pas, vous me conseillez de supprimer ma table Temps$, la table Clé, et la table Groupe et de tout mettre directement dans ma table Base_V2 ?

  5. #5
    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
    Non, on peut très bien avoir plusieurs tables de faits reliées entre elles.
    Ce n'est pas le problème.
    Ce que tu essayais de faire, c'est créer une requête pour créer une table contenant ton analyse. Ca c'est inutile.
    Un graphique basé sur tes tables de fait pourra afficher ton analyse, sans avoir besoin d'une table intermédiaire (sauf certains cas difficiles peut-être)

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    En fait je pense que je n'arrive pas à expliquer mon raisonnement.
    Mon but final est de créer une alerte, pour se faire, j'ai besoin à chaque fois de comparer, si je prends l'exemple du nombre de nouveaux clients, le nombre de nouveaux client du trimestre en cours avec la moyenne des 4 trimestres précédents.

    C'est pour ça que je pense passer par le SQL. A moins qu'il y ait une solution plus évidente et là je suis preneuse ^^

  7. #7
    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
    Regarde dans l'aide de Qlikview à " Analyse d'ensemble " (Set Analysis)
    Sinon regarde aussi la fonction d'agrégation aggr.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je te remercie de tes conseils je teste ça en début d'aprem et je fais un retour plus tard.

    Encore merci de m'accorder de ton temps, c'est cool.

    Maw

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    Bonjour,
    Je suis (encore ?) loin d'être expert dans QlikView mais j'avais cru comprendre que moins on y faisait de SQL mieux c'était (je grossis sûrement un peu).
    Il me semblait également que tu n'avais qu'un jeu de données initial dont tu souhaitais comparer les valeurs.

    Si c'est le cas, je soumettrai bien l'analyse suivante :

    Soient les données source (dans un fichier CSV)
    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
     
    Id client Année Mois
    1 2010 1
    2 2010 1
    3 2010 1
    4 2010 1
    5 2010 1
    6 2010 1
    7 2010 1
    8 2010 4
    9 2010 4
    10 2010 7
    11 2010 7
    12 2010 7
    13 2010 7
    36 2010 10
    14 2011 1
    15 2011 1
    16 2011 1
    17 2011 4
    18 2011 4
    19 2011 7
    20 2011 7
    21 2011 7
    22 2011 7
    23 2011 7
    24 2011 7
    25 2011 7
    26 2011 7
    27 2011 7
    28 2011 7
    29 2011 7
    30 2011 7
    31 2011 7
    32 2011 7
    33 2011 7
    34 2011 7
    35 2011 7
    Le script de chargement suivant permet de mettre les données à la granularité année / trimestre et de définir au sein de variables le dernier trimestre du jeu de données et l'année précédente.
    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
     
    MaSource: // Pour forcer QV à créer la table avec ce nom 
    LOAD // Chargée en 1er : Récupération des données texte (ça pourrait être de l'Excel)
     [Id client], 
         Année, 
         Mois,
         Ceil(Mois/3) as Trimestre,
         10*Année+Ceil(Mois/3) as AnnéeTrim // La granularité minimum est à l'année et au trimestre. Ce champ servira de clé.
    FROM
    C:\Formation\QlikView\TestData.csv
    (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
    MaDestination:
    LOAD
     Année,
     Trimestre,
     AnnéeTrim,
     count([Id client]) as NbClients //Calcul du nombre de clients pour chaque trimestre
    Resident MaSource // Resident est nécessaire pour permettre la clause Order by
    Group by Année, Trimestre, AnnéeTrim
    Order by AnnéeTrim;
    Drop table MaSource; // ici : Plus besoin des données source.
    let vAnnéeTrimMax = peek('AnnéeTrim',-1,MaDestination); //Récupération de l'année trimestre de la dernière ligne de MaDestination 
    let vAnnéeRef = floor(vAnnéeTrimMax/10)-1; // Identification de l'année précédente 
    trace Trace => $(vAnnéeTrimMax), $(vAnnéeRef); // C'est parfois utile que QV affiche dans la fenêtre d'exécution ce qu'il a évalué.
    Ensuite, dans l'éditeur du document, je peux créer deux variables contenant :
    La moyenne du nombre de clients de l'année précédente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    vMoyenneRef
    sum(total {1<Année = {'$(vAnnéeRef)'}>} NbClients)
    /
    count(total {1<Année = {'$(vAnnéeRef)'}>} NbClients)
    Le nombre de clients du trimestre en cours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vNbCliAct = Sum (total {1 < AnnéeTrim = {'$(vAnnéeTrimMax)'} >}NbClients)
    Afin de ne pas être perturbé par les diverses sélections faites dans le document, j'ai fait en sorte de m'en affranchir (total {1}).
    Une fois ces variables créées, je peux définir l'affichage conditionnel d'un graphique Propriétés > Disposition > Conditionnel et y saisir la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(vNbCliAct)<$(vMoyenneRef).
    Suis-je complètement à coté de la plaque ou cela t'avance-t-il un peu ?

    Cordialement,

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ça m'a l'air d'être ce que je veux faire, mais je suis vraiment débutante, n'ayant eu que quelques heures de formation basées sur le Tutoriel à la FAC, autant dire que je me suis "autoformée", je ne saisi pas tout ce que tu as mis dans le code. Je ne sais pas trop non plus où tout mettre, enfin bref.

    Merci beaucoup en tous cas, c'est très gentil de passer du temps pour moi.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    je ne saisi pas tout ce que tu as mis dans le code
    Bon on va essayer d'avancer un peu.

    Je suppose que tu as pris la première zone de code et que tu l'as collée dans un fichier texte. Tant que tu y seras, change Id client en IdClient, ça s'intégrera plus facilement.

    Ensuite on y va étape par étape.
    Dans l'éditeur de script j'ai créé une nouvelle feuille (mais ce n'est pas obligatoire). Menu Onglet/ajouter un onglet. Il y a aussi une icône mais l'image n'est pas facile à coller dans le forum.

    Pour forcer QlikView à mettre le nom de table que tu veux, tu fait précéder le chargement par le nom désiré terminé obligatoirement par deux points :

    Pour charger le fichier j'ai utilisé l'assistant, s'agissant d'un fichier plat Le bouton Fichier de tables en bas à droite fait l'affaire. Je me suis laisser guider par les fenêtres de l'assistant et ça m'a donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    LOAD [Id client], 
    Année, 
    Mois
    FROM
    C:\Formation\QlikView\TestData.csv
    (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
    Vu la granularité souhaitée, il faut retrouver le trimestre et construire une clé sur L'année et le mois. J'ai donc modifié le script en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    MaSource:
    LOAD // Chargée en 1er : Récupération des données texte (ça pourrait être de l''Excel)
    [Id client], 
    Année, 
    Mois,
    Ceil(Mois/3) as Trimestre,
    10*Année+Ceil(Mois/3) as AnnéeTrim // La granularité minimum est à l''année et au trimestre. Ce champ servira de clé.
     
    FROM
    C:\Formation\QlikView\TestData.csv
    (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
    Pour rajouter les deux champs qui me manquent.

    Note que lors de l'utilisation de l'assistant, QV te ramène le nom de tous les champs qu'il trouve mais que tu n'est pas obligée de les charger tels quels. Quoi qu'il en soit, tu peux les utiliser et changer le nom des colonnes (aliasé par as).

    Cette table est chargée dans QV mais j'ai besoin de faire des regroupements. Pour me simplifier la vie, je vais donc récupérer les éléments déjà chargés pour les retravailler dans QV et créer une table ma destination.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    MaDestination:
    LOAD
    Année,
    Trimestre,
    AnnéeTrim,
    count([Id client]) as NbClients //Calcul du nombre de clients pour chaque trimestre
    Resident MaSource // Resident est nécessaire pour permettre la clause Order by
    Group by Année, Trimestre, AnnéeTrim
    Order by AnnéeTrim;
    Note le Resident MaSource qui indique à QV d'utiliser la table déja chargée. Pour pouvoir le faire, il faut que le chargement de cette table source soit décrit avant le chargement de la table Ma Destination sinon QV ne trouve pas les données.

    Une fois que j'ai fait les regroupements, je n'ai plus besoin de la table source
    donc je la supprime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Drop table MaSource; // ici : Plus besoin des données source.
    et je calcule deux variables pour trouver le dernier trimestre de l'année en cours et l'année précédente.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    let vAnnéeTrimMax = peek('AnnéeTrim',-1,MaDestination); //Récupération de l'année trimestre de la dernière ligne de MaDestination
    Pour créer une variable, tu utilises le préfixe LET.
    Pour créer une constante, tu utilises le préfixe SET.

    Ici on crée des variables :
    Par défaut, QV ne permet pas de compléter les variables avec les données issu du chargement. Pour lui dire d'aller les récupérer, il faut utiliser la fonction PEEK qui reçoit 3 arguments : Le nom du champ ou se trouve la donnée, Le rang dans le jeu d'enregistrement où aller la chercher (1 premier, 2 deuxième, -1 dernier, -2 avant dernier), La table à interroger.

    Le calcul de l'année précedente est trivial, je te laisse chercher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let vAnnéeRef = floor(vAnnéeTrimMax/10)-1; // Identification de l'année précédente
    J'aurais probablement pu également extraire la moyenne et le nombre de clients dans le script mais j'ai choisi de le faire dans le rapport.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trace Trace => $(vAnnéeTrimMax), $(vAnnéeRef);
    L'instruction trace est commode, elle écrit ce que tu lui demandes dans le rapport d'intégration. En développement de script, ça peut aider.

    Note qu'ici je n'ai affiché que le contenu des deux variables. Pour cela, il est nécessaire d'encadrer le nom de la variable avec $(), chez QV, on appelle cela l'expansion de la variable. En d'autre termes dans la variable, on stocke la formule pour la calculer, et le jeu $() demande de l'évaluer. C'est vrai aussi des variables générées dans le document.

    J'en ai fini avec le script.

    On l'exécute et on va voir ce qui se passe dans le document.

    On va créer un nouvel objet graphique de type tableau simple, contenant l'année, le trimestre, et le nombre de clients. Tu peux aussi ajouter des listes de sélection si tu le désires.

    Ce n'est pas trop difficile, je te laisse faire.

    La grande force de QV est de pouvoir faire très simplement des sélections à l'intérieur des divers objets constituant le document.

    Ces sélections servent a filtrer les données affichées. Mais quelquefois on souhaite comparer les données filtrées avec le reste ou avec des données issues de sélections précédentes. Les concepteurs de QV ont prévu ça et ont inventé une syntaxe à l'intérieur des agrégations qui permet de faire à peu près tous les rapprochements que l'on souhaite.

    Pour tester on va créer un champ texte : Dans une zone vide de la feuille -> Clic droit, nouvel objet de feuille, champ texte.

    et on va y coller la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='Nombre de clients'&Sum (NbClients)
    Ca devrait t'afficher le nombre de clients de la sélection en cours. Pour tester, tu cliques sur une ou plusieurs lignes du tableau créé au dessus et normalement le nombre de clients suit le mouvement.

    Pour le fun on va changer la formule en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='Nombre de clients'&Sum ({$}NbClients)
    Refais des sélections. Rien ne change par rapport au test précédent, c'est normal {$} représente la sélection active et c'est la valeur par défaut.

    Maintenant on va modifier la formule en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='Nombre de clients'&Sum ({1}NbClients)
    Si tu fais des sélections dans le tableau tu t'aperçois que ton texte ne change plus. {1} représente l'ensemble des données de ton jeu de données et ignore les sélections.

    De la même manière, si tu voulais voir les données de la sélection précédente, tu saisirais {$1} et pour la sélection suivante {$_1}.

    Sauf que maintenant je voudrais voir dans mon texte le nombre de clients de l'année 2011 sans tenir compte de la sélection.

    C'est aussi prévu : On va saisir à l'intérieur de l'accolade un filtre qui sera placé entre chevrons. Chez QV on appelle ça un modificateur.
    La formule devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='Nombre de clients'&Sum ({1<Année={2011}>}NbClients)
    Note que le 2011 est un jeu de données (un set), il est placé lui aussi entre accolades mais nécessairement à l'intérieur des chevrons.

    Regarde maintenant le résultat. Le texte affiche contre vents et marées le nombre de clients de 2011.

    Tout ça c'est bien beau mais l'année de référence change tous les ans. Il faut donc remplacer le 2011 par la variable créée dans le script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='Nombre de clients'&Sum ({1<Année={'$(vAnnéeRef)'}>}NbClients)
    Note l'expansion de variable pour que QV aille bien chercher la valeur. Note aussi les simples cotes qui sont les séparateurs de données textuelles (laisser les cotes marche aussi si les données sont numériques, c'est du QV pas du java).

    Maintenant, il n'y a plus qu'à créer une variable dans le générateur de documents pour ne pas avoir à retaper le formule dans tous les tableaux.

    Menu Paramètres / Vue d'ensemble des variables cliquer sur ajouter : tu lui donne un nom et tu colles la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum ({1<Année={'$(vAnnéeRef)'}>}NbClients)
    dans la fenêtre définition.

    Voila, tu as créé tes premières variables, tu n'as plus qu'à créer des conditions reposant sur ces variables dans les tableaux dont tu veux voir un affichage conditionnel. Ce n'est pas très compliqué, les infos dans mon post précédent devraient suffire.

    Cordialement,

    PS : On a effleuré quelques concepts des set analysis mais il y aurait encore beaucoup à dire.

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Déjà pour commencer, merci beaucoup de prendre du temps et d'être si pédagogue.

    J'ai compris beaucoup de choses, me reste à les appliquer sur mon vrai fichier ^^
    J'ai deux questions:

    la première :

    Menu Paramètres / Vue d'ensemble des variables cliquer sur ajouter : tu lui donne un nom et tu colles la formule
    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part

    Sum ({1<Année={'$(vAnnéeRef)'}>}NbClients)

    dans la fenêtre définition.
    J'ai bien trouvé où le mettre c'est bien enregistré, mais je ne comprends pas comment on peut s'en servir ensuite.

    Seconde question :

    En fait j'aimerai faire la moyenne sur l'année précédant le trimestre, par exemple si en dernière donnée j'ai le 3e trimestre de 2011, j'aimerai faire la moyenne sur les trimestres 3 et 4 de 2010 et 1 et 2 de 2011. Dans ce cas à quel point dois-je changer la formule?

    Merci encore ^^

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Stagiare
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiare

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je me demande également, faut il impérativement que Mois et Année soient dans la même table que celle où sont les informations que je dois comparer?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    Déjà pour commencer, merci beaucoup de prendre du temps et d'être si pédagogue.
    "My Pleasure !"

    Réponse à la deuxième question :

    Dans ce cas, il faut définir le trimestre limite à partir duquel commence la sélection du nombre de clients.
    Je te propose de modifier la variable qui ramène l'année de référence dans le script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let vAnnéeTrimRef = peek('AnnéeTrim',-5,MaDestination);
    Elle retourne maintenant l'année et le trimestre à partir duquel on va compter le nombre des clients.
    Tu peux recharger le script pour réévaluer ta variable.
    On va ensuite modifier la variable qui permet de calculer la moyenne de référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =Sum (total {1 < AnnéeTrim = {'>=$(vAnnéeTrimRef)'} - {'$(vAnnéeTrimMax)'}>}NbClients)
    / 4
    Note : La variable dans le script ramène toujours la 5ième date du jeu de données en commençant par la fin. S'il manque un trimestre dans le jeu de données la moyenne n'est plus dans la période souhaitée. On va considérer ici qu'il y a tous les trimestres.

    Dans les jeux d'analyse, on a vu hier qu'il existait 2 éléments qui permettaient de composer avec les sélections du document.
    Les identifiants : {$}, {1}, ...
    Les modificateurs : <Année = {2010}> à l'intérieur des identifiants et entre chevrons.
    Il existe un troisième élément permettant des opérations ensemblistes entre les jeux de données : l'opérateur.

    Il y a 4 opérateurs :
    + : pour réaliser une opération de type OU (union)
    * : pour réaliser une opération de type ET (intersection)
    - : pour réaliser une soustraction (MINUS)
    / : Pour réaliser un ou exclusif (XOR - fromage ou dessert mais pas les deux).
    Ces opérateurs peuvent s'appliquer aux listes de sélection.
    ramène toutes les ventes du jeu de données moins celles de la sélection.
    Ils peuvent aussi être utilisés dans les modificateurs pour ajuster les valeurs ramenées par les ensembles.
    ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    < AnnéeTrim = {'>=$(vAnnéeTrimRef)'} - {'$(vAnnéeTrimMax)'}>
    va d'abord constituer la liste des 5 trimestres supérieurs à vAnnéeTrimRef et comme on ne veut garder que les 4 avant-derniers trimestres, on en retire le dernier (vAnnéeTrimMax).
    Tant qu'on y est tu remarqueras la méthode utilisée pour constituer la liste des 5 derniers trimestres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {'>=$(vAnnéeTrimRef)'}
    entre les accolades on ramène une liste (un tuple) et entre les apostrophes (obligatoires) on ajoute un opérateur (>=) et un opérande ($(vAnnéeTrimRef)) l'objet de la condition, c'est AnnéeTrim bien sûr en tête du modificateur.

    On devrait donc maintenant avoir la moyenne pour la période de référence.

    Réponse à la première question :

    Lorsque tu crée un graphe, dans l'onglet <Disposition> des propriétés, il existe une zone qui s'appelle <Afficher> avec 2 boutos radio : Toujours / Conditionnel.
    Tu coches Conditionnel et tu saisis la condition dans le champ à coté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vMoyenneRef >= vNbCliAct
    Ton tableau s'affichera seulement lorsque la moyenne de référence sera supérieure à la moyenne du trimestre en cours.

    Par ailleurs si tu n'as par toute la doc, je te conseille de créer un compte QlikView sur QlikView.com. Cela te permettra de télécharger le manuel de référence.

    1000 pages en anglais, ça ne vaut pas un cours particulier mais tout y est.

    Bien sûr, le forum est aussi là pour t'aider.

    Cordialement,

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

Discussions similaires

  1. [Débutant] Création des alertes pour des tâches de flux
    Par NaimaDj dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 05/07/2013, 03h07
  2. création des alerte
    Par douda1989 dans le forum Zend Framework
    Réponses: 7
    Dernier message: 03/06/2012, 23h26
  3. [MySQL] création d'alerte par mail
    Par sverdo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/05/2012, 14h08
  4. [MySQL] Script de création d'alerte
    Par DThx26 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/11/2011, 08h35
  5. création d'alerte mail
    Par guintolli dans le forum SharePoint
    Réponses: 1
    Dernier message: 16/07/2008, 15h37

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