Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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;
///////
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'
];
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
C'est un début.
Si tu veux arriver à ça :
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 = ;
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;
///////