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

Créer un champ calculé

Bonjour,

Mon besoin a l'air très simple mais je n'y parviens pas : créer un champ calculé.

J'ai suivi les indications sur le site de Qlik pour créer un champ calculé mais impossible. Je suis sur Qlik sense et je ne parviens pas à trouver le bouton pour créer un champ calculé. 

Quand je suis sur "Editer" et que je clique sur "Ajouter" quand je suis sur "Champs", on me revoit vers l'ajout de source de données mais ce n'est pas ce que je souhaite !

Pouvez-vous m'indiquer précisément où cela se trouve ?

Merci 

1 Solution

Accepted Solutions
Taoufiq_Zarra

@Rdouto 

tu peux par exemple ajouter aggr()

comme dans l'exemple :

Capture.PNG

l'expression est donc :

=sum(aggr(sum(distinct if(isnull([Current maturity gate]), 0,
if ([Current maturity gate] = 'G0' and today()>[G0 date],1,
if ([Current maturity gate] = 'G2' and today()>[G2 date],1,
if ([Current maturity gate] = 'G5' and today()>[G5 date],1,
if ([Current maturity gate] = 'G9' and today()>[G9 date],1,0)))))),[Project Name]))

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

9 Replies
Taoufiq_Zarra

Bonjour @Rdouto ,

est ce que tu peux partager un exemple de donnée et le calcul que tu souhaites faire ?

tu veux faire le calcul au niveau du chargement ou dans l'interface après chargement ?

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
Rdouto
Contributor II
Contributor II
Author

Voici ce que j'aimerais mettre dans le nouveau champ : 

if(isnull([Current maturity gate]), 'missing',
if ([Current maturity gate] = 'G0' and today()>[G0 date],'Late',
if ([Current maturity gate] = 'G2' and today()>[G2 date],'Late',
if ([Current maturity gate] = 'G5' and today()>[G5 date],'Late',
if ([Current maturity gate] = 'G9' and today()>[G9 date],'Late','OK')))))='Late')

Et après je pourrai avoir un indicateur avec le nombre de projet en 'Late' par exemple

J'aimerais faire le calcul dans l'interface après chargement (enfin il ne faudrait pas que j'ai à le refaire à chaque fois quand même) 

Taoufiq_Zarra

est ce que tu peux partager un exemple de donnée ? avec la valeur souhaitée de l'indicateur ?

et c'est toujours mieux de faire ces calcul au niveau du chargement

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
Rdouto
Contributor II
Contributor II
Author

Voici un exemple, j'espère que c'est assez clair : 

Rdouto_0-1598873183494.png

 

D'accord au niveau du chargement je peux faire oui. Comment on s'y prend ?

Merci pour ton aide!

Rdouto
Contributor II
Contributor II
Author

Pour donner plus de détails sur l'image que j'ai envoyée : 

La seule valeur calculée est celle dans "project late or not?". Le champ "Maturity Gate" est une donnée rentrée dans le système. Et c'est la comparaison entre cette donnée et les dates rentrées qui nous dit si le projet est en retard ou pas. 

J'ai donc réussi à indiquer si le projet est en retard ou pas, mais j'aimerais avoir un indicateur de cela ! Je me suis dit que passer par un champ calculé pouvait m'aider.

Taoufiq_Zarra

si tu veux il ya plusieurs solution.

par exemple tu peux faire si tu arrives à distinger les Late par :

if(isnull([Current maturity gate]), 'missing',
if ([Current maturity gate] = 'G0' and today()>[G0 date],'Late',
if ([Current maturity gate] = 'G2' and today()>[G2 date],'Late',
if ([Current maturity gate] = 'G5' and today()>[G5 date],'Late',
if ([Current maturity gate] = 'G9' and today()>[G9 date],'Late','OK')))))

tu peux faire pour l'indicateur:

=sum(if(isnull([Current maturity gate]), 0,
if ([Current maturity gate] = 'G0' and today()>[G0 date],1,
if ([Current maturity gate] = 'G2' and today()>[G2 date],1,
if ([Current maturity gate] = 'G5' and today()>[G5 date],1,
if ([Current maturity gate] = 'G9' and today()>[G9 date],1,0))))))

 Résultat :

Capture.PNG

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
Rdouto
Contributor II
Contributor II
Author

Super j'ai l'impression que ça fonctionne ! 

Et tu saurais me dire comment je peux rajouter un "distinct [Project Name]" car mes lignes sont répétées plusieurs fois car j'ai utilisé la fonction Subfield (si tu vois ce que je veux dire)

Taoufiq_Zarra

@Rdouto 

tu peux par exemple ajouter aggr()

comme dans l'exemple :

Capture.PNG

l'expression est donc :

=sum(aggr(sum(distinct if(isnull([Current maturity gate]), 0,
if ([Current maturity gate] = 'G0' and today()>[G0 date],1,
if ([Current maturity gate] = 'G2' and today()>[G2 date],1,
if ([Current maturity gate] = 'G5' and today()>[G5 date],1,
if ([Current maturity gate] = 'G9' and today()>[G9 date],1,0)))))),[Project Name]))

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
Rdouto
Contributor II
Contributor II
Author

Ça fonctionne très bien ! J'avais essayé avec aggr() mais j'avais oublié de mettre le "distinct" dedans. 

Merci beaucoup ! 

Bonne journée