2 Replies Latest reply: May 17, 2018 11:57 AM by bruno bertels RSS

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

    bruno bertels

      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

        • Re: changement de nom par ID en fonction d'une date // Intervalmatch?
          LAURENT CLOATRE

          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'

          ];

            • Re: changement de nom par ID en fonction d'une date // Intervalmatch?
              bruno bertels

              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

                • Re: changement de nom par ID en fonction d'une date // Intervalmatch?
                  Sébastien Fatoux

                  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 = ;

                  • Re: changement de nom par ID en fonction d'une date // Intervalmatch?
                    bruno bertels

                    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; 

                    ///////