Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
Ouahou,
je suis abasourdi par la rapidité et l'aisance à laquelle tu as sorti cela !
par contre, cela remonte la valeur min et max des NO_SEMAINE par ID_Sejour et "Evenement"
ce qui je voudrais, c'est la valeur de chaque évenement, par séjour, sur les NO_SEMAINE min et max...
Florent.
Bonjour
Est ce que ceci correspond a ton besoin ? :
si oui je te renvois mon fichier test
les deux mesures sont pour
* valeur dans l'évènement pour min sem :
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'ALIMENTATION',Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}ALIMENTATION),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'COMPORTEMENT',Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}COMPORTEMENT),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'CONTINENCE',Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}CONTINENCE),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'DEPLACEMENT',Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}DEPLACEMENT),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'HABILLAGE',Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}HABILLAGE),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'RELATION',Min({$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}RELATION)))))))
Et pour valeur dans l'évènement pour MAX sem :
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'ALIMENTATION',min({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'COMPORTEMENT',min({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}COMPORTEMENT),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'CONTINENCE',min({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}CONTINENCE),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'DEPLACEMENT',min({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}DEPLACEMENT),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'HABILLAGE',min({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}HABILLAGE),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'RELATION',min({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}RELATION)))))))
en gros çà dit pour min semaine
cherche dans la liste d'évènements possibles (A,B,C,D) l'évènement A :
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'ALIMENTATION'
puis pour le plus petit NO_semaine de l'événement :
{$<NO_SEMAINE={$(=min(NO_SEMAINE))}>}
renvoi la valeur trouvée dans l'évènement :
min(évènementA) [ici j'ai pris min mais c'est juste pour renvoyer la valeur trouvée
Bruno
ça me semble ça...
du coup, pourquoi le 1er min ?
je faisais DIM 1 : ID_SEJOUR
DIM 2 : ALIMENTATION
EXPR 1 : mod($<NO_SEMAINE={$(=Min(NO_SEMAINE))}>}ALIMENTATION)
EXPR 2 :mod({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION)
et ça ne marchait pas...
j'ai aussi remplacer "mod" par "avg"
puis j'ai essayé avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION),ID_SEJOUR)) en enlevant DIM 1 et ça ne marchait pas non plus... (je ne suis pas sûr ici de la position des parenthèses mais qvw était ok...)
Re
alors pour ceci :
ça me semble ça...
du coup, pourquoi le 1er min ?
je faisais DIM 1 : ID_SEJOUR
DIM 2 : ALIMENTATION
EXPR 1 : mod($<NO_SEMAINE={$(=Min(NO_SEMAINE))}>}ALIMENTATION)
EXPR 2 :mod({$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION)
et ça ne marchait pas...
pour MOD voici ce que dit l'aide Mod() est une fonction modulo mathématique qui renvoie le reste non négatif d'une division entière. Je sais pas bien a quoi peut servir cette fonction mais pour Mod( 7,2 ) çà divise 7 par 2 et renvoi le reste si il existe , 0 si le reste est 0 et null si le reste n'est pas un entier
Ensuite pour les EXPR 1 et 2 , ceux sont les formes de base qu'il faut ensuite "étendre" à chaque événements possible avec des IF et Valuelist ce qui donne sous la forme complète ceci une fois étendue : ( pour afficher le NO_SEM mini)
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)))))))
ok,
mais sur mon post juste avant, ma question est :
pourquoi utilisé ce "min" ?
Re,
Pour ca :
j'ai aussi remplacer "mod" par "avg"
puis j'ai essayé avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION),ID_SEJOUR)) en enlevant DIM 1 et ça ne marchait pas non plus... (je ne suis pas sûr ici de la position des parenthèses mais qvw était ok...)
avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION),ID_SEJOUR))
ta formule dit en gros la moyenne de la moyenne des valeurs de ALIMENTATION suivant les semaines distinctes MAX aggrégé par ID SEJOUR
oui, c'est ce que je voulais, mais ca ne marchait pas non plus...
Re,
On va y arriver ))
pour çà
ok,
mais sur mon post juste avant, ma question est :
pourquoi utilisé ce "min" ?
le min ici c'est juste pour renvoyer une valeur , on pourrait mettre sum ou max ou avg peut importe du moment ou nous sommes sur que pour un ID SEJOUR et une semaine MINI ou une SEMAINE MAXI et pour un EVENEMENT il n'y a qu'une valeur possible dans la colonne Alimentation ou séjour ou autre. Ce qui est bien le cas à priori dans tes données.
OK
je l'ai testé indépendamment elle marche
mais un fois dans un tableau elle n'affiche de résultat que pour alimentation alors que je l'ai adapté pour chaque évenement :
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'ALIMENTATION',avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}ALIMENTATION),ID_SEJOUR)),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'COMPORTEMENT',avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}COMPORTEMENT),ID_SEJOUR)),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'CONTINENCE',avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}CONTINENCE),ID_SEJOUR)),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'DEPLACEMENT',avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}DEPLACEMENT),ID_SEJOUR)),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'HABILLAGE',avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}HABILLAGE),ID_SEJOUR)),
if(
valuelist('ALIMENTATION','COMPORTEMENT','CONTINENCE','DEPLACEMENT','HABILLAGE','RELATION')=
'RELATION',avg(aggr(avg(distinct {$<NO_SEMAINE={$(=Max(NO_SEMAINE))}>}RELATION),ID_SEJOUR))))))))