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 :

Sélections et exclusions d'individus


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut Sélections et exclusions d'individus
    Bonjour à tous,

    Je suis actuellement devant une impasse sur mon application QlikView.
    Je souhaite pouvoir réaliser une exclusion, voici un petit exemple afin d’être explicite :

    Etape 1 : Je réalise une sélection sur ma base de données grâce à mes critères de sélection.
    Etape 2 : Je souhaite réaliser une nouvelle sélection excluant les individus de l’étape 1.

    Est-il possible de réaliser ce type d’actions sous QlikView ?

    J’ai pensé créer une variable temporaire permettant de « marquer » les individus sélectionnés dans la première étape.
    Ensuite en seconde étape il me suffira d’exclure ces individus grâce à la variable.

    Merci d'avance :-).

  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
    Bonjour.
    Je ne sais pas exactement ce que tu désires, mais regarde "analyse d'ensembles" dans l'aide en ligne.
    Sum(Ventes) va donner la somme des Ventes pour la dimension courante, seulement les éléments sélectionnés.
    sum( {1-$} Ventes ) va donner la somme des Ventes pour la dimension courante, mais seulement des éléments exclus de la sélection

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci pour votre réponse.

    Hélas ce n'est pas ce que je recherche exactement. Je vais donner un exemple plus précis.
    J'ai en entrée une BDD avec 10 000 clients.

    Etape 1 : Je réalise une première sélection sur ces 10 000 clients et j'en sélectionne 1 000.
    Etape 2 : Dans une seconde étape je souhaite réaliser des traitements sur les 9 000 clients restant. On exclu donc les 1000 clients précédemment sélectionnés.

    Il faut donc que je puisse distinguer les clients sélectionnés lors de la première étape et les exclure pour pouvoir traiter les clients restant.

    Merci.

  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
    Dans la seconde étape, peux-tu préciser quel genre de traitement tu veux effectuer ?
    Genre traitement dans un script ou genre formule de calcul ?

  5. #5
    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
    Toujours avec les Set Analysis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum({$ <client-=P(client)>} Ventes)
    donnera la somme des ventes, pour la sélection courante (date, région...), sauf pour la sélection des clients où ça ne prendra que les clients qui ne sont pas sélectionnés (ça va enlever tous les clients actuellement sélectionnés).

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci pour vos réponses mais cela ne correspond pas exactement à mon soucis.
    Mon problème est assez compliqué à décrire et je ne trouve aucun cas semblable au mien dans les forums.

    Dans ma seconde étape je souhaite pouvoir réaliser de nouvelles sélections et calculs mais auxquels on a soustrait les individus sélectionnés dans la partie 1.

    Par exemple :

    Etape 1 : Je réalise une première sélection sur ces 10 000 clients et j'en sélectionne 1 000.
    Etape 2 : Dans une seconde étape je réalise des sélections sur les 9 000 clients restant. On exclu donc les 1000 clients précédemment sélectionnés. Je sélectionne de nouveau 1 000 individus.
    Etape 3 : Dans une troisième étape je réalise des sélections sur les 8 000 clients restant. On exclu donc les 2000 clients précédemment sélectionnés. Je sélectionne de nouveau 1 000 individus.
    Etape 4 : etc...

    A chaque étape il s'agit d'un nouvel onglet, dans mon document QlikView, permettant de réaliser des sélections. Je souhaite donc expulser les clients sélectionnés précédemment de ma base de données de client disponible, et ceci à chaque étape.

    Merci.

  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
    Si le nombre d'étapes est connu, une solution est de faire autant de liste de clients que d'étape :
    - ClientQuiPassentLetape1
    - ClientQuiPassentLetape2
    ...
    - ClientQuiPassentLetapeN


    Et pour les calculs de chaque étape, mettre un Set Analysis qui prend l'intersection des précédentes étapes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {$ <client=P(ClientQuiPassentLetape1)*P(ClientQuiPassentLetape2)*P(ClientQuiPassentLetapeN)>}
    Et un petit bouton / macro pour affecter la sélection courante de "client" à "ClientQuiPassentLetapeX".

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse PhunkyBob.

    Est-ce que tu sais comment est-ce que je pourrais créer ce bouton / macro pour affecter la sélection courante de clients ?

  9. #9
    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,

    Supposons que vous ayez 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
    Client:
    LOAD * INLINE [
    Client
    Aaa
    Bbb
    Ccc
    Ddd
    Eee
    ];
     
    Client_etape1:
    LOAD
    	DISTINCT Client AS Client_etape1
    RESIDENT Client;
    La macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sub CopySelection
    	ActiveDocument.fields("Client_etape1").clear
     
    	set mySelections = ActiveDocument.fields("Client").GetSelectedValues
     
    	for i = 0 to mySelections.Count - 1
    		'msgbox mySelections.Item(i).text
    		ActiveDocument.fields("Client_etape1").ToggleSelect(mySelections.Item(i).text)
    	next
     
    end sub
    permettra de sélectionner dans "Client_etape1" les valeurs sélectionnées dans "Client".

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 23
    Points : 23
    Points
    23
    Par défaut
    Merci encore pour ces éclaircissements.

    Par contre, j'ai remarqué que cette méthode permet de choisir la sélection de la table 'client_etape1' pour l'appliquer sur la deuxième table 'client' : cela veut dire que je vais devoir créer autant de tables que d'étapes ?

  11. #11
    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
    Ca me parait être la façon la plus simple.

Discussions similaires

  1. Sélection d'individus sur plusieurs variables
    Par lozeba dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/06/2013, 18h44
  2. Sélection avec inclusion/exclusion sur un même champ
    Par hsoulard dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/01/2012, 13h17
  3. Sélection aléatoire d'individus
    Par berlilou dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/11/2008, 17h11
  4. sélection liée exclusive
    Par CaviarNAS dans le forum Requêtes
    Réponses: 7
    Dernier message: 04/12/2007, 09h12
  5. [Access 2003] Sélection d'un table avec exclusion
    Par morpheez dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/11/2006, 11h16

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