Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
MauriceLudo
Creator II
Creator II

Set Analysis M-1

Bonjour,

j'ai un souci avec cette expression pour calculer un pourcentage de Mois-1,

l'expression fonctionne pour certain mois , elle m'affiche le résultat d'avril qd je sélectionne  mai, et rien pour juin et juillet.

Count({<Année={'$(=Year(AddMonths(Max([Date Appel]),-1)))'}, [Mois]={'$(=Month(AddMonths(Max([Date Appel]),-1)))'}, Jour=, Heures=, Q_5={'Satisfaisants'},[Produits]=$(vProduit)>} [ID personne] )

   /Count({<Année={'$(=Year(AddMonths(Max([Date Appel]),-1)))'}, [Mois]={'$(=Month(AddMonths(Max([Date Appel]),-1)))'}, Jour=, Heures=, [Produits]=$(vProduit) >}/* total <[Mois]> */[ID personne])

Quelqu'un  peut m'aider s'il vous plait

Merci

Maurice

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Je pense que j'ai trouvé le problème, mais il faut que tu testes.

Tu peux voir ci-dessous la liste de sélection Mois, ainsi que 2 objet texte dans lesquels j'ai copié les expressions suivantes :

  • = Year(AddMonths(Max([Date Appel cal]),-1))
  • = Month(AddMonths(Max([Date Appel cal]),-1))

community_1339408.png

On peux voir que le mois dans l'objet texte est suivi d'un point alors que ce n'est pas le cas dans la liste de sélection Mois.

Ceci est du à la variable suivante dans le script de chargement

SET MonthNames='janv.;févr.;mars.;avr.;mai.;juin.;juil.;août.;sept.;oct.;nov.;déc.';

Il faut la modifier comme ceci (ne pas mettre le point si le nom du mois est complet) et relancer le chargement :

SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';

View solution in original post

6 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

Salut Maurice,

Pour commencer, il manque des éléments dans ton expression :

Count({<Année={'$(=Year(AddMonths(Max([Date Appel]),-1)))'}, [Mois]={'$(=Month(AddMonths(Max([Date Appel]),-1)))'}, Jour=, Heures=, Q_5={'Satisfaisants'},[Produits]={'$(vProduit)'}>} [ID personne] )

  /Count({<Année={'$(=Year(AddMonths(Max([Date Appel]),-1)))'}, [Mois]={'$(=Month(AddMonths(Max([Date Appel]),-1)))'}, Jour=, Heures=, [Produits]={'$(vProduit)'} >}/* total <[Mois]> */[ID personne])

Où utilises-tu cette expression?

Si c'est dans un graphique dans lequel tu as la dimension Mois cela ne marchera pas, car le set analysis est exécuté avant d'entrer dans ton graph. Donc "Max([Date Appel]" aura comme contexte d'exécution la sélection de ton application. C'est pour ceci que tu as des valeur pour un mois et pas pour les autres.

MauriceLudo
Creator II
Creator II
Author

Salut Sébastien,

c'est une erreur lors de  copie,

j'au utilise ça dans un tableau croisé dynamique avec valueList, sans dimension Mois

sfatoux72
Partner - Specialist
Partner - Specialist

Tu utilise quoi comme autres dimensions à part valuelist dans ton tableau croisé dynamique ?

MauriceLudo
Creator II
Creator II
Author

je n'ai pas autres dimensions,

voici l'appli

sfatoux72
Partner - Specialist
Partner - Specialist

Je pense que j'ai trouvé le problème, mais il faut que tu testes.

Tu peux voir ci-dessous la liste de sélection Mois, ainsi que 2 objet texte dans lesquels j'ai copié les expressions suivantes :

  • = Year(AddMonths(Max([Date Appel cal]),-1))
  • = Month(AddMonths(Max([Date Appel cal]),-1))

community_1339408.png

On peux voir que le mois dans l'objet texte est suivi d'un point alors que ce n'est pas le cas dans la liste de sélection Mois.

Ceci est du à la variable suivante dans le script de chargement

SET MonthNames='janv.;févr.;mars.;avr.;mai.;juin.;juil.;août.;sept.;oct.;nov.;déc.';

Il faut la modifier comme ceci (ne pas mettre le point si le nom du mois est complet) et relancer le chargement :

SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';

Brice-SACCUCCI
Employee
Employee

Bonjour,

je déconseille de faire ce genre de Set Analysis avec les noms de mois (ou tout champ qui a à la fois une valeur numérique et textuelle, c'est à dire un "dual"). C'est source de nombreuses erreurs car la gauche et la droite du signe égal sont souvent dans un format différent.

Il vaut mieux utiliser un champ numérique dédié à cela.

Ce que je fais toujours :

- Dans mon calendrier, j'ajoute un champ du type Year(Date) * 12 + Month(Date) AS [Compteur Mois]. Ce champ a l'avantage de valoir 1 de plus à chaque mois qui passe, même lors des changements d'année.

- Le set analysis pour M-1 est simplement : [Compteur Mois] = {'$=MAX([Compteur Mois] - 1)'}

- Pour l'année précédente (M-12) : [Compteur Mois] = {'$=MAX([Compteur Mois] - 12)'}

- etc.

Bonne chance

Brice