Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je dispose d'une table contenant les champs suivants :
DateFichier,
ID, (Id du membre du personnel)
Statut Presta Personnel, (Prestation, Jour Férié, Maladie, Récupération jour férié, vacances annuelles,Inconnu)
CalendrierDateStatut (SEMAINE, SAMEDI, DIMANCHE ou FERIE)
Voir exemple ci-dessous :
Je souhaiterais créer un nouveau champ, "TypeMaladie".
Type maladie =
"Malade 1 à 7j"
ou "Malade 8 à 14j"
ou "Malade 15 à 30j"
ou "Malade + 30j"
ou "Pas Malade"
Je cherche la logique qui me permettrait de qualifier, pour chaque membre du personnel et pour chaque jour, son "type de maladie" sur base de son statut du jour mais aussi sur base du statut des 30 jours qui précédent.
Quelle serait la logique à mettre en place ?
D'avance merci,
Antoine,
il faut déjà définir quelque règles :
Bonjour,
Je souhaite surtout comprendre la logique qui permettrait de qualifier un jour sur base des statuts des X (ici 30 jours) qui précèdent.
On peut partir sur un principe simple :
Si le statut du jour et celui des 30jours qui précèdent = Maladie alors "Malade +30j'
Sinon, si le statut du jour et celui des 15jours qui précèdent = Maladie alors "Malade 15 à 30j'
Sinon, si le statut du jour et celui des 7jours qui précèdent = Maladie alors "Malade 8 à 14j'
Sinon, si le statut du jour = Maladie alors "Malade 1 à 7j'
Sinon "Pas malade".
Pouvez vous m'aider ?
Merci
Antoine,
Bonsoir,
Le plus simple à mon avis :
Calculer pour chaque ID et statut, la date min et max.
Stocker dans nouvelle table ID, statut, dates min et max
Calculer le delta en nb de jour entre date min et max.
Selon nombre de jour, affecter la valeur de la classe
Cdt
Christophe Jouve
Principal Solution Architect
Direct: +33 1 55 62 65 54
Mobile: +33 6 76 24 22 47
Email: Christophe.Jouve@qlik.com
Qlik
France Headquarters Office,93 avenue Charles de Gaulle
92200 Neuilly sur Seine
qlik.com<http://www.qlik.com/>
Téléchargez gratuitement QlikView
http://www.qlikview.com/fr/explore/experience/free-download
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.
De : A Z
Envoyé : mercredi 8 novembre 2017 21:11
À : Christophe Jouve <Christophe.Jouve@qlik.com>
Objet : Re: - Comment créer une boucle de calcul pour qualifier une durée de maladie ?
Bonsoir,
Merci pour votre réponse.
N'est il pas possible de faire une boucle du genre (je ne suis pas programmeur)
FOR i=0 To 30;
if Statut.Date(-30+i) = "Malade"
next i;
Then Statut_Malade.Date = "Malade+30j"
Merci.
Antoine,
Avec une règle aussi simple c’est pas compliqué, vu que tu n‘as au maximum que 6 jours consécutifs du aux dimanches qui sont « Inconnu » .
TU n’auras plus que :
Christophe,
Ta solution est la bonne, mais il manque une première étape indispensable :
==> il faut commencer par identifier les périodes de jours avec un statut consécutif indentique en fonction de certaines règles. Et par la suite tu peux calculer la date min et Max de chacune de ces périodes.
SInon, si une personne est malade en début d’année et en fin d’année, tu vas la considérer malade toute l’année
Bonjour,
Merci pour vos réactions.
J'ai fait l'exercice sous Excel et j'aimerais avoir une logique qui s'y rapproche mais ma méconnaissance de Qlik Sense m'empêche de faire ce que je souhaite.
A savoir qualifier un paramètre pour un jour donné en fonction de la valeur d'un paramètre le(s) jour(s) qui précèdent ?
C'est ce principe de rechercher la valeur x jour plus tôt que le jour que je traite que je cherche à comprendre et à mettre en pratique.
Voici mon exemple (sous excel).
Sous excel, c'est "simple", on peut faire un calcul sur base de la valeur du champ du dessus en cliquant simplement x colonnes au dessus. Ensuite, il suffit de tirer la formule ..
Pouvez vous m'aider ?
Merci.
Antoine,