Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
Not applicable

Dimension non valide sur un COUNT()

Bonjour,

Je débute sur Qlik Sense et je suis assez désorientée...

Je travaille sur une application de bibliothèque et je souhaiterais afficher un graphique du nombre de prêts par année universitaire depuis 2013. J'ai chargé sans trop de soucis le champ DATE et la CLE de la table des prêts pour la période concernée.

J'ai créé 3 mesures pour les années universitaire (2013-2014, 2014-2015...) sans problème.

J'avais pensé mettre un COUNT(CLE) en dimension mais cette dimension est non valide.

Avez-vous une idée de ce qui cloche dans mon raisonnement ou dans ma syntaxe ?

Merci de votre aide !

Fçoise

Tags (1)
1 Solution

Accepted Solutions
brunobertels
Valued Contributor II

Re: Dimension non valide sur un COUNT()

Re,

Alors oui et non ...

non car la syntaxe est séparée par une vigule :

Sum({$<ANNEE_SCOLAIRE=,Catégories-={'Report'},AS_ANNEE={$(=Max(AS_ANNEE)-1)}>}[Recettes CC])

et oui en fait pour dire "prend en compte la dim ANNEE_SCOLAIRE"

je vois souvent dans les set analysis pour des analyses de YTD ou MTD les dimensions du calendrier ajoutée comem ceci

Sum({$<ANNEE_SCOLAIRE=,MOIS=,SEMAINE=,Catégories-={'Report'},AS_ANNEE={$(=Max(AS_ANNEE)-1)}>}[Recettes CC])

et çà m'a fait pensé à çà

Donc çà marche cette fois ?

31 Replies
flochi75
Contributor III

Re: Dimension non valide sur un COUNT()

Bonjour Françoise,

Je ne sais pas trop ce que représente le champ "CLE" de votre table, mais me vient à l'esprit 2 choses :

     par principe, il vaut mieux ne pas faire de calcul sur une "clé", sous entendu un élément commun entre 2 tables.

     ensuite, votre champ "CLE" doit justement être un élément commun de vos 2 tables, qui fait le lien avec tous les autres champs des 2 tables...

un exemple de "CLE" :

Capture.PNG

Si vous respectez cela, pourriez-vous nous joindre votre application ou les syntaxes que vous utilisez ?

Florent.

brunobertels
Valued Contributor II

Re: Dimension non valide sur un COUNT()

Bonjour Françoise,

Que représente exactement le champ CLE de votre table ?

a propos de ceci :

"J'avais pensé mettre un COUNT(CLE) en dimension mais cette dimension est non valide." on ne peut pas utiliser une mesure comme dimension.

Si tu peux partager et uploader ton application ou une partie de celle ci , se sera sans doute plus aisée à la communauté de t'aider.

Bruno

Not applicable

Re: Dimension non valide sur un COUNT()

Bonjour,

    Ta dimension ne devrait pas plutôt être une date ou une période temporaire ?

    Si "CLE" représente un clef unique pour chaque prêt, et que tu souhaites connaitre le nombre de prêt sur un mois (mars 2015) par exemple il faut que tu utilise ton "COUNT" dans une mesure et non pas une dimension ou tu précise le mois (Month) de ton prêt.

David.

Not applicable

Re: Dimension non valide sur un COUNT()

Bonjour,

Ce que j'appelle le champ CLE c'est effectivement la clé primaire de ma table.

Je ne peux pas partager mon application, apparemment elle est trop lourde.

Je veux interroger une seule table pour l'instant et je cherche à afficher le nombre d'enregistrements (nombre de prêts) par période de temps donnée (années universitaires). J'ai déclaré les années universitaires en mesure et je pensais compter les enregistrements avec un COUNT(CLE).

Je n'ai récupéré de ma table que les champs CLE (clé primaire) et DATE (date du prêt), je pensais que ça suffisait.

Merci de votre aide,

Fçoise

Not applicable

Re: Dimension non valide sur un COUNT()

Bonjour,

   Essai de mettre l'année universitaire en dimension et non pas en mesure et le "count" en mesure et non pas en dimension.

   Est-ce que ça fonctionne mieux ?

David

Not applicable

Re: Dimension non valide sur un COUNT()

Ok mais je ne sais pas comment faire pour avoir la dimension "par année universitaire".

Je peux faire un intervalle correspondant à une année, par exemple 2014-2015 :

PHFPRE > 01/09/2014 and PHFPRE < 01/09/2015

Mais comment présenter par exemple avec les 3 dernières années universitaires ?

Merci !

Fçoise

brunobertels
Valued Contributor II

Re: Dimension non valide sur un COUNT()

Bonjour

Tu as dans ton script deux colonnes : une DATE et une CLE

Tu veux regrouper par année scolaire ton nombre de prêt ( champ CLE) avec un count(CLE)

Pour cela il te faut une dimension ANNEE SCOLAIRE avec ce format 2014-2015

Donc dans ton script il va falloir rajouter un champ ANNEE , un champ MOIS et un champ ANNEE_SCOLAIRE,

Essaye ceci dans ton script :

Set vFM = 9 ;                                                          //premier mois de l'année scolaire sept

Calendrier:

Load Dual(AS_ANNEE-1 &'/'& AS_ANNEE, AS_ANNEE) as ANNEE_SCOLAIRE,          // année scolaire double
         Dual(MOIS, "AS_MOIS")                as MOIS_ANNEE_SCOLAIRE,           // mois année scolaire double

          *;

Load ANNEE+ If(MOIS>=$(vFM), 1, 0) as AS_ANNEE,           // l'année scolaire numérique

         Mod(MOIS-$(vFM), 12)+1        as "AS_MOIS",          // mois année scolaire numérique

          *;

Load Year(DATE)                              as ANNEE,           //calendrier

Month(DATE)                            as MOIS,

Load

DATE,

CLE

from ....

flochi75
Contributor III

Re: Dimension non valide sur un COUNT()

Bonjour Bruno,

est-ce la même syntaxe dans Qlikview ?

Merci.

brunobertels
Valued Contributor II

Re: Dimension non valide sur un COUNT()

Bonjour

Je pense que oui j'avais trouvé ce code ici :

https://community.qlik.com/blogs/qlikviewdesignblog/2013/05/28/fiscal-year

et importé et testé dans une app qlick sense qui marche bien pour moi

j'ai mis ce code avant de charger mes fichiers de données :

Set vFM = 9 ; //premier mois de l'année scolaire sept

Calendrier:

Load Dual(AS_ANNEE-1 &'/'& AS_ANNEE, AS_ANNEE) as ANNEE_SCOLAIRE,// année scolaire double
Dual(MOISTEST, "AS_MOIS")as MOIS_ANNEE_SCOLAIRE, // mois année scolaire double

           *;

Load ANNEETEST+ If(MOISTEST>=$(vFM), 1, 0)as AS_ANNEE,    // l'année scolaire numérique
Mod(MOISTEST-$(vFM), 12)+1 as "AS_MOIS",       // mois année scolaire numérique

           *;

Load Year(date)as ANNEETEST,      //calendrier

Month(date)as MOISTEST;

matable:

load

*

from ....