Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
flochi75
Creator III
Creator III

set analysis et année -1

Bonjour,

j'ai une difficulté sur un set analysis pour remonter les données de l'année N*1.

voici la formule :

Sum (aggr(sum(distinct{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_ISOL),ID_SEQUENCE))/Sum(aggr(sum(DISTINCT{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_J_PRES),ID_SEQUENCE))

pour que cela fonctionne, il faut que je sélectionne les 2 années (N et N-1), sinon, N-1 est vide.

Merci pour votre retour.

Florent

1 Solution

Accepted Solutions
YoussefBelloum
Champion
Champion

voici par exemple l'expression de la 3eme colonne, corrigée

Sum({<Année_Séquence={$(=max(Année_Séquence)-1)}>}aggr(sum(distinct{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_ISOL),ID_SEQUENCE))/Sum({<Année_Séquence={$(=max(Année_Séquence)-1)}>}aggr(sum(DISTINCT{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_J_PRES),ID_SEQUENCE))

toi tu faisait: Sum(sum(... ce qui est incorrect.

tu doit toujours avoir aggregation_function(AGGR(Aggregation_function(AGGR(...

toujours séparer 2 fonctions d'aggregation type Sum, Count etc par la fonction AGGR

View solution in original post

14 Replies
YoussefBelloum
Champion
Champion

Bonjour,

pouvez vous partager un échantillon de données? juste 2 ou 3 colonnes pour tester

christophebrault
Specialist
Specialist

Bonjour,


Si les ID_SEQUENCE sont exclue par la sélection sur l'année, c'est normal que l'expression ne fonctionne pas car pas de valeur dans le aggr pour ID_SEQUENCE.


je n'ai pas testé, mais si tu rajoute le  set analysis sur l'année dans le Sum global comme ceci ?

Sum ({<Année_Séquence={$(=max(Année_Séquence)-1)}>}

aggr(sum(distinct{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_ISOL),ID_SEQUENCE))/Sum(aggr(sum(DISTINCT{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_J_PRES),ID_SEQUENCE))

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
flochi75
Creator III
Creator III
Author

Bonjour Christophe,

merci pour ton aide, mais ça ne change rien...

mais je pense que ça vient bien de l'AGGR car sur une simple formule comme

count(distinct {<Année_Séquence={$(=max(Année_Séquence)-1)}>}if(NB_ISOL>0,ID_SEJOUR))

ça fonctionne...

flochi75
Creator III
Creator III
Author

Bonjour Youssef,

je te joins l'app.

Merci.

YoussefBelloum
Champion
Champion

voici par exemple l'expression de la 3eme colonne, corrigée

Sum({<Année_Séquence={$(=max(Année_Séquence)-1)}>}aggr(sum(distinct{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_ISOL),ID_SEQUENCE))/Sum({<Année_Séquence={$(=max(Année_Séquence)-1)}>}aggr(sum(DISTINCT{<Année_Séquence={$(=max(Année_Séquence)-1)}>}NB_J_PRES),ID_SEQUENCE))

toi tu faisait: Sum(sum(... ce qui est incorrect.

tu doit toujours avoir aggregation_function(AGGR(Aggregation_function(AGGR(...

toujours séparer 2 fonctions d'aggregation type Sum, Count etc par la fonction AGGR

YoussefBelloum
Champion
Champion

je t'invite a lire ceci:

Aggregations and Function Classes

trés interessant

flochi75
Creator III
Creator III
Author

Merci Youssef et Merci (et pardon) à Christophe.

Vous aviez raison tous les 2 : j'ai mal lu la réponse de Christophe et comme me l'a expliqué Youssef, j'avais rajouté un "SUM("  à l'expression globale au lieu d'insérer le set analysis après le 1er SUM.


Ca fonctionne.

Maintenant que je connais la réponse, c'est logique : il faut intégrer le set analysis à tous les niveaux de l'agrégation...


Merci encore.


Florent

flochi75
Creator III
Creator III
Author

il me reste une question :

pourquoi les 2 1eres expressions (cadre 1) ne sont pas sensibles aux filtres UF ou mois, alors que les 3 dernières le sont ? (second cadre)

Capture.JPG

Merci d'avance

YoussefBelloum
Champion
Champion

Bonjour Florent,

Votre question est toujours d'actualité ?