Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
scribidouille
Contributor III
Contributor III

Création dimension de seuil avec SUM et TOTAL

J'ai créé une mesure qui permet de sommer mes 4 montants, par Date observation et Id Sin et qui se calculer correctement

sum({$<[Id Type CM] = {'   '},
   [Exercice] = {"<$(=year(max([Date Observation])))"},
       [Id Sin] -= {"8*","9*"}
      >}  
total <[Date Observation],[Id Sin]> 
[Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4]) 
 
Je veux ensuite définir un seuil à 500 000
Si le total est inférieur à 500 000, je veux mettre la valeur 'Oui', sinon 'Non'
 
J'ai créé une dimension et écrit l'expression suivante :
=if(
sum({$<[Id Type CM] = {'   '},
   [Exercice] = {"<$(=year(max([Date Observation])))"},
       [Id Sin] -= {"8*","9*"}
      >}  
total <[Date Observation],[Id Sin]> 
[Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4]) 
>=500000,'Non','Oui')
 
Quand j'applique l'expression, çà me me met dimension invalide.
 
Est ce que quelqu'un a une idée ? Merci d'avance
Pour info, mes droits sont limités, je n'ai pas accès aux champs mais uniquement aux éléments principaux mis à disposition
Labels (1)
2 Solutions

Accepted Solutions
vincent_ardiet_
Specialist
Specialist

Il faut utiliser Aggr() autour de l'expression, si par exemple votre object possède déjà 2 dimensions [MaDimension1] et [MaDimension2] cela donnera:

=if(    AGGR(

sum({$<[Id Type CM] = {'   '},
   [Exercice] = {"<$(=year(max([Date Observation])))"},
       [Id Sin] -= {"8*","9*"}
      >}  
total <[Date Observation],[Id Sin]> 
[Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4]) 
,[MaDimension1],[MaDimension2])

>=500000,'Non','Oui')

View solution in original post

scribidouille
Contributor III
Contributor III
Author

Voici une solution qui évite d'utiliser la fonction aggr()

sum({[Id Type CM] = {'   '},

[Exercice] = {"<$(=year(max([Date Observation])))"},

 [Id Sin] -= {"8*","9*"},
   [Id Sin]={"=sum(total <[Id sin]>[Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4])<500000"}>}
   [Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4])

View solution in original post

5 Replies
brunobertels
Master
Master

Bonjour

Ce que tu as écrit est correct dans la syntaxe. Toutefois il s'agit d'une mesure et non d'une dimension.

Si tu ajoutes ta formule dans un tableau en mesure est ce que cela fonctionne ?

Cdt

vincent_ardiet_
Specialist
Specialist

Il faut utiliser Aggr() autour de l'expression, si par exemple votre object possède déjà 2 dimensions [MaDimension1] et [MaDimension2] cela donnera:

=if(    AGGR(

sum({$<[Id Type CM] = {'   '},
   [Exercice] = {"<$(=year(max([Date Observation])))"},
       [Id Sin] -= {"8*","9*"}
      >}  
total <[Date Observation],[Id Sin]> 
[Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4]) 
,[MaDimension1],[MaDimension2])

>=500000,'Non','Oui')

scribidouille
Contributor III
Contributor III
Author

C'est une dimension, car je veux qualifier l'atteinte du seuil ou non par une valeur booléen : Oui ou Non

scribidouille
Contributor III
Contributor III
Author

Effectivement seul la fonction aggr semble fonctionner.

Merci pour l'aide.

scribidouille
Contributor III
Contributor III
Author

Voici une solution qui évite d'utiliser la fonction aggr()

sum({[Id Type CM] = {'   '},

[Exercice] = {"<$(=year(max([Date Observation])))"},

 [Id Sin] -= {"8*","9*"},
   [Id Sin]={"=sum(total <[Id sin]>[Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4])<500000"}>}
   [Mnt 1]+[Mnt 2]+[Mnt 3]+[Mnt 4])