Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
brunobertels
Master
Master

changement de nom par ID en fonction d'une date // Intervalmatch?

Bonjour

Je m'adresse à vous pour un cas que je ne sais pas traiter.

Voici

Dans une de mes app qui suit des volumes d'appels reçus traités émis etc j'ai un fichier en ligne avec pour chaque appel

un ID ( Agent 1, Agent 2 , Agent 3 etc )

jusqu' à présent derrière chaque ID il y avait la même personne.

J'avais donc fait rajouté simplement un bout de script avec un load inline pour avoir un prénom à la place de Agent 1 Agent 2 Etc

toutefois il arrive que la personne parte et soit remplacée

du coup par exemple en Avril , derrière Agent 1 il y avait MARIE et depuis MAI derrière Agent 1 il y a SOPHIE

Comment faire pour que dans Qlik Sense en fonction de la date (DD/MM/YYYY)  je puisse attribuer le bon prénom à l'agent 1 agent 2 etc ?

MA question à deux niveaux  :

Quelle structure de fichier Excel ou inline je dois avoir pour avoir par AgentID le bon prénom en fonction de la date?

Et comment dans mon fichier de data appliquer le bon prénom en fonction de la date: IntervalMatch()  ? Join() ?

Ci dessous mon load inline actuel  qu'il faudrait rendre dynamique en fonction d'une date

Secrétaires:

load *inline [

AgentId,Secrétaire,

Accueil1,Charlotte

Accueil2,Aïcha

Accueil3,Marine

Accueil4,Vanessa

Accueil5,Géraldine

Accueil6,Christine

];

Merci par avance

1 Solution

Accepted Solutions
brunobertels
Master
Master
Author

Bonjour

J'ai finalement réussi grâce à vos retours et çà marche

Merci encore

/////
effectif:
LOAD
    AgentId,
    Secrétaire,
    date(DateDEB)as DateDEB,
    date(DateFIN) as DateFIN
FROM [lib://Fichier Appels/EFFECTIF.xlsx]
(ooxml, embedded labels, table is Feuil1);

Final_Table: 
INTERVALMATCH (Date1) left JOIN LOAD DateDEB, DateFIN RESIDENT effectif; 
left Join (data) LOAD distinct * RESIDENT effectif; 
DROP TABLE effectif; 

///////

View solution in original post

4 Replies
lcloatre
Partner - Creator III
Partner - Creator III

Il faudrait ajouter les dates de début et date de fin dans la table et l'intégrer au calendrier :

Secrétaires:

load *inline [

AgentId,Secrétaire, DateDebut, DateFin

Accueil1,Charlotte, '01/01/2000', '31/12/2222'

Accueil2,Aïcha, '01/01/2000', '31/12/2222'

Accueil3,Marine, '01/01/2000', '31/12/2222'

Accueil4,Vanessa, '01/01/2000', '31/12/2222'

Accueil5,Géraldine, '01/01/2000', '31/12/2222'

Accueil6,Christine, '01/01/2000', '31/12/2222'

];

brunobertels
Master
Master
Author

Bonjour Laurent

OK donc il me faut bien une date début et date fin donc ; déjà çà je n'étais pas sur .

Donc j'imagine qu emon load inline pourrait ressembler à çà quand il y a un changement de Personne sur un ID

AgentId,Secrétaire, DateDebut, DateFin

Accueil1,CHARLOTTE, '01/01/2018', '31/01/2018'

Accueil1,ANNE, '01/02/2018', '28/02/2018' //ici en Janvier sur Accueil1 j'ai Charlotte et en Février j'ai ANNE

Accueil2,Aïcha, '01/01/2000', '31/12/2222'

Accueil3,Marine, '01/01/2000', '31/12/2222'

Accueil4,Vanessa, '01/01/2000', '31/12/2222'

Accueil5,Géraldine, '01/01/2000', '31/12/2222'

Accueil6,Christine, '01/01/2000', '31/12/2222'

];

Si je construit mon tableau de suivi comme çà çà marchera donc ?

Merci pour ton retour

Bruno

sfatoux72
Partner - Specialist
Partner - Specialist

C'est un début.

Si tu veux arriver à ça :

community_1487143.png

Il faudra un calendrier et l'utilisation de la fonction IntervalMatch

SET DateFormat='DD/MM/YYYY';

//////////////////////////////////////
// Données de base
//////////////////////////////////////
Secrétaires:
Load
*,
RowNo() as Secretaire_id
Inline [
AgentId,Secrétaire, DateDebut, DateFin
Accueil1,CHARLOTTE, '01/01/2018', '31/01/2018'
Accueil1,ANNE, '01/02/2018', '28/02/2018'
Accueil2,Aïcha, '01/01/2000', '31/12/2222'
Accueil3,Marine, '01/01/2000', '31/12/2222'
Accueil4,Vanessa, '01/01/2000', '31/12/2222'
Accueil5,Géraldine, '01/01/2000', '31/12/2222'
Accueil6,Christine, '01/01/2000', '31/12/2222'
]
;



//////////////////////////////////////
// Création d'un calendrier
//////////////////////////////////////
LET vMinDate = Num(Makedate(2000,1,1));
LET vMaxDate = Num(Makedate(2018,6,30));

ChampDate:
LOAD date($(vMinDate)+IterNo()-1) as MaDate
AUTOGENERATE (1)
WHILE $(vMinDate)+IterNo()-1<= $(vMaxDate);

Calendrier:
LOAD
MaDate as Date,
Year(MaDate) as Année,
'T ' &
Num(Ceil(Month(MaDate)/3),'(ROM)0') as Trimestre,
Month(MaDate) as Mois,
MonthEnd(MaDate)as DateFinMois,
Week(MaDate) as Semaine,
Weekday(MaDate) as JourSemaine,
Day(MaDate) as Jour
RESIDENT ChampDate;

DROP TABLE ChampDate;
SET vMinDate = ;
SET vMaxDate = ;

brunobertels
Master
Master
Author

Bonjour

J'ai finalement réussi grâce à vos retours et çà marche

Merci encore

/////
effectif:
LOAD
    AgentId,
    Secrétaire,
    date(DateDEB)as DateDEB,
    date(DateFIN) as DateFIN
FROM [lib://Fichier Appels/EFFECTIF.xlsx]
(ooxml, embedded labels, table is Feuil1);

Final_Table: 
INTERVALMATCH (Date1) left JOIN LOAD DateDEB, DateFIN RESIDENT effectif; 
left Join (data) LOAD distinct * RESIDENT effectif; 
DROP TABLE effectif; 

///////