Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
antoinez
Contributor III
Contributor III

Comment créer une boucle de calcul pour qualifier une durée de maladie ?

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 :

Maladie Longue Durée.jpg

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,

7 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

‌il faut déjà définir quelque règles :

  • Quand commence une période de maladie ?
  • Quand se termine une période de maladie ?
  • Les statut qui ne termine pas une période de maladie sont ils comptés comme jour de maladie lorsqu’ils se trouvent dans une période de maladie ? Au début d’une période de maladie ? À la fin d’une période de maladie ?
antoinez
Contributor III
Contributor III
Author

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,

cje
Employee
Employee

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 ?

antoinez
Contributor III
Contributor III
Author

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,

sfatoux72
Partner - Specialist
Partner - Specialist

‌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 :

  • Si statut du jour, maladie ==> Malade 1 a 7 jours
  • Sinon ==> Pas malade
sfatoux72
Partner - Specialist
Partner - Specialist

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

antoinez
Contributor III
Contributor III
Author

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).

Calcul Maladie.jpg

Formule Maladie.jpg

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,