Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
flochi75
Creator III
Creator III

Déterminer valeur min/max en fonction filtre année

Bonjour à toutes et à tous,

j'aimerai comparer les valeurs de certains champs  entre ceux de la première semaine du dossier et ceux de la dernière semaine.

Pour les dossiers débutés dans l'année étudiée, la première semaine porte le N°1. Pour les dossiers débutés l'année N-1, dans l'année étudiée, le N° de semaine est variable (dépend de la semaine de démarrage du dossier...)

Enfin, la N° de la dernière semaine est variable également...

Je n'arrive pas à m'en sortir...

Merci pour votre aide...

Florent.

21 Replies
alineclozel
Creator
Creator

Florent,

Pour ma part j’essaierais avec un set analysis de ce type (j'ai moi aussi pas mal tourné en rond pour trouver la formule sur une année) :

{<Date= {"$(=Max(Date))"} >}

Dans ton cas il faudrait avoir un champ combiné avec ANNEE + N°mois (ou de la semaine)

Chez moi ça marche pour bien retenir la dernière année que j'ai en matière de données statistiques

Tiens moi au courant

flochi75
Creator III
Creator III
Author

En fait, c'est pas si simple :

je m'explique  :

le "NO_SEMAINE" = numérotation par dossier des semaines : si je crée un dossier aujourd'hui, son "NO_SEMAINE" sera 1. Pour un dossier créé le 1er janvier 2016, aujourd'hui son "NO_SEMAINE" sera 4...

Pour une même date, chaque dossier a un "NO_SEMAINE" différent...

J'ai 6 champs scores différents par dossiers et par semaine. Je voudrais comparer les valeurs de ces 6 champs entre la 1ère et la dernière semaine de chaque dossier...

J'ai essayé dans le script de chargement de rajouter les champs "flags" 1ere semaine et dernière semaine par dossier (via la syntaxe group by) mais je dois filtrer ces données une année, et je pense que c'est là que ça coince...

je ne sais pas si c'est plus clair..

brunobertels
Master
Master

Bonjour Florent

Comme le dit Aline je pense aussi que la solution passe par un set analysis.

Pour t'aider au mieux je pense qu'il faudrait détailler ta demande : par exemple en mettant un tableau excel de l'état de tes données et de ce que tu veux comme représentation finale.

Voire le mieux un échantillon de ton fichier Qlik Sense

Bruno

flochi75
Creator III
Creator III
Author

Bonjour Bruno,

je joins la table utilisée (en MAJUSCULE les Champs cibles):

je voudrais dans un tableau avoir les valeurs de

                                 1ère semaine (NO_SEMAINE)                   dernière semaine (NO_SEMAINE)

ALIMENTATION              3                                                                    2

COMPORTEMENT          4                                                                      2

CONTINENCE                  1                                                                    2

DEPLACEMENT                1                                                                    1

HABILLAGE                      2                                                                    2

RELATION                        1                                                                    1




Merci d'avance.

alineclozel
Creator
Creator

Florent,

Je n'y comprend rien !

En fait ton champ NO_SEMAINE n'est pas un numéro de semaine mais un numéro incrémenté par semaine ???

As tu un champs date ? un vrai champs semaine ?

En fait ton problème est de bien définir le champs (combiné surement) qui te permettrait de faire ton tri ???

A +

brunobertels
Master
Master

Re,

Désolé j'utilise QSense Desktop , je ne peux pas ouvrir les QVD

Bruno

alineclozel
Creator
Creator

Florent,

En regardant tes données il me semble qu'il faudrait combiner ton champs numéro de semaine civile et ton numéro de semaine???

A +

flochi75
Creator III
Creator III
Author

le voici en xls.

(le logiciel QVEYE permet de lire les QVD et a une fonction d'export xls...)

merci.

brunobertels
Master
Master

Bonjour Florent

A partir de ton fichier excel je me suis permis de restreindre les données et garder que certains champs pour me faciliter la tâche.

voici ce que cela donne en échantillon :

ID_SEJOURDATE_DEBUT_SEMDATE_FIN_SEMN°MoisMoisAnnéeRELATIONALIMENTATIONCOMPORTEMENTCONTINENCEDEPLACEMENTHABILLAGENO_SEMAINENO_SEMAINE_CIVILE
40382010/05/201510/11/201510oct.20152224441201541
40382011/02/201511/08/201511nov.20152224445201545
40382016/11/201522/11/201511nov.20152224447201547
40382011/09/201515/11/201511nov.20152224446201546
40382010/12/201518/10/201510oct.20152224442201542
40382023/11/201529/11/201511nov.20152224448201548
40382019/10/201525/10/201510oct.20152224443201543
40382026/10/201511/01/201511nov.20152224444201544
40382030/11/201512/06/201512déc.20152224449201549
40382012/07/201513/12/201512déc.201522244410201550
40382014/12/201520/12/201512déc.201522244411201551

Je constate que les champs relation alimentation etc , sont des colonnes distinctes dans ta base.

Déjà par rapport a çà il y a deux solutions soit passer par un crosstable dans le script pour regrouper ces colonnes sous un même champs "évènements" par exemple, soit dans un tableau passer par une dimension calculée avec la formule VALUELIST.

J'ai pris cette deuxième option avec VALUELIST

Aussi en regardant la colonne NO_SEMAINE je constate que quelque soit l'évènement (relation alimentation etc) les NO_SEMAINE sont les même.

A partir de ça j'ai fait un fichier Qlik Sense ( normalement ouvrable sous Qlikview) en prenant un table avec

Filtre ID SEJOUR

DIM ID SEJOUR

DIM EVENEMENT ( en prenant : valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')

puis MESURES :

MIN SEM avec cette formule de base : Min({$<NOM_EVENEMENT={'>0'}>}NO_SEMAINE)

MAX SEM MAX({$<NOM_EVENEMENT={'>0'}>}NO_SEMAINE)

mais pour l'adapter à la DIM Evenement il faut les développer pour chaque évènement en fonction de valuelist : qui dit en somme si la valeur de la liste de valeur de value liste = A alors prendre formule A et ainsi de suite :

if(

valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=

'ALIMENTATION',Min({$<ALIMENTATION={'>0'}>}NO_SEMAINE),

if(

valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=

'COMPORTEMENT',Min({$<COMPORTEMENT={'>0'}>}NO_SEMAINE),

if(

valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=

'CONTINENCE',Min({$<CONTINENCE={'>0'}>}NO_SEMAINE),

if(

valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=

'DEPLACEMENT',Min({$<DEPLACEMENT={'>0'}>}NO_SEMAINE),

if(

valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=

'HABILLAGE',Min({$<HABILLAGE={'>0'}>}NO_SEMAINE),

if(

valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=

'RELATION',Min({$<RELATION={'>0'}>}NO_SEMAINE)))))))

valeur dans la colonne évènement avec ceci :

Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}ALIMENTATION)

( je ne sais pas si c'est utile)

çà me donne çà :

Si il y a des évènement en début de semaine sur N-1 il faudra rajouter un set avec MIN(ANNEE) mais je n'en ai pas vu dans tes données.

je n'ai pas tester si les formules fonctionne avec des Min Sem et MAX semaine différents suivant les évènements ; pas eu le temps mais je nen ai pas vu non plus dans tes données.

voila en espérant que çà te permette d'avancer.

Ci joint le QVF

Bruno