Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Re bonjour,
Je pense que j'abuse de votre ingéniosité car j'ai une dernière question sur mon chargement sélectif.
Dans mes questions précédentes je cherchais à exclure des champs dès le chargement à partir d'une variable. Grace à votre aide tout marche très très bien 🙂
Ma chance était que mes champs étaient construits comme une date de type [01/06] ou [25/06]......
J'ai maintenant un autre fichier dans lequel je dois effectuer la même exclusion sauf que dans ce fichier les champs sont du type date aussi mais sous la forme [lu 01/06] ou [Ma 25/06].
J'ai tenté plusieurs versions de modification de script avec la fonction if....then et FieldName mais je ne parviens pas à obtenir le résultat recherché.
Sauriez vous m'orienter vers une fonction ou une solution ?
Merci encore !
FICHIER:
LOAD distinct
FileBaseName() as Nom_Fichier
FROM [lib://Desktop/Reprise_Qlik_121_06.xlsx]
(ooxml, embedded labels, table is Feuil1);
let MoisFichier = Left(Subfield(Peek('Nom_Fichier', 0,'FICHIER'),'_',4),2);
DROP Table FICHIER;
let VAR01='01/' & (MoisFichier) & '/2016';
let VAR02='31/' & (MoisFichier) & '/2016';
let Date_jour_deb = date(VAR01,'DD/MM/YYYY');
let Date_jour_fin = date(VAR02,'DD/MM/YYYY');
set Errormode=0;
For Date_jour= '$(Date_jour_deb)' to '$(Date_jour_fin)'
let Jour= left(date('$(Date_jour)'),5);
[Feuil1]:
LOAD
[Code ligne],
[Libellé ligne],
[Libellé voie],
[PK début],
[PK fin],
[Durée],
[Début],
[Fin],
[Commentaire],
//VERSION INITIALE pour des Champs de données type = [02/06]
// [$(Jour)] as QteCharge,
//'$(Jour)' as Jour,
//VERSION MODIFIEE suite à évolution des champs de données type [lu 02/06]
if Right(FieldName,5)=Jour then
[$(FieldName)] as QteCharge
'$(FieldName)' as Jour
end if;
[Type ressource],
[Statut1],
[Commentaire affectation]
FROM [lib://Desktop/Reprise_Qlik_121_06.xlsx]
(ooxml, embedded labels, table is Feuil1);
Next
Utilisez Capitalize
let Nom_jour= Capitalize(left(weekday('$(Date_jour)'),2));
Bonjour
çà pourra peut être t'aider
sous réserve que ton format est toujours sous la forme [xx 00/00]
=mid(Nom_Fichier,3) donne ceci [00/00]
maintenant , je ne sais pas ou imbriquer çà dans ton script désolé
Bruno
Bonjour,
Merci,je ne connaissais pas cette fonction. Cependant mon problème reste le même car je crains que c'est mon IF..then qui n'est pas bon!! il faut sans doute autre chose à la place mais je n'arrive pas à trouver même sur la communauté et pas plus sur l'aide en en ligne. J'espère qu'un expert va pouvoir m'aider.
Encore merci
FICHIER:
LOAD distinct
FileBaseName() as Nom_Fichier
FROM [lib://Desktop/Reprise_Qlik_121_07.xlsx]
(ooxml, embedded labels, table is Feuil1);
let MoisFichier = Left(Subfield(Peek('Nom_Fichier', 0,'FICHIER'),'_',4),2);
DROP Table FICHIER;
let VAR01='01/' & (MoisFichier) & '/2016';
let VAR02='31/' & (MoisFichier) & '/2016';
let Date_jour_deb = date(VAR01,'DD/MM/YYYY');
let Date_jour_fin = date(VAR02,'DD/MM/YYYY');
set Errormode=0;
For Date_jour= '$(Date_jour_deb)' to '$(Date_jour_fin)'
let Jour= left(date('$(Date_jour)'),5);
let Nom_jour= left(weekday('$(Date_jour)'),2);
let FieldN= '$(Nom_jour)'&' '&'$(Jour)';
[Feuil1]:
LOAD
[Code ligne],
[Libellé ligne],
[Libellé voie],
[PK début],
[PK fin],
[Durée],
[Début],
[Fin],
[Commentaire],
[$(FieldN)] as QteCharge,
'$(Jour)' as Jour
[Type ressource],
[Statut1],
[Commentaire affectation]
FROM [lib://Desktop/Reprise_Qlik_121_$(MoisFichier).xlsx]
(ooxml, embedded labels, table is Feuil1);
Next
Bonjour,
Merci beaucoup pour votre aide une nouvelle fois. Ceci ne fonctionne pas complètement car seul les champs de type [lu 04/07] ou [ma 05/07] sont récupérés. Or mes champs sont avec une MAJUSCULE sur la 1ère lettre du jour donc du type [Lu 04/07] ou [Ma 05/07]. Je pensais qu'en plaçant la fonction FORCE en amont ceci permettrait de faire la récupération de tous les champs mais cela ne fonctionne pas mieux. Avez vous une idée ?
FICHIER:
LOAD distinct
FileBaseName() as Nom_Fichier
FROM [lib://Desktop/Reprise_Qlik_121_07.xlsx]
(ooxml, embedded labels, table is Feuil1);
let MoisFichier = Left(Subfield(Peek('Nom_Fichier', 0,'FICHIER'),'_',4),2);
DROP Table FICHIER;
Force Case Mixed;
let VAR01='01/' & (MoisFichier) & '/2016';
let VAR02='31/' & (MoisFichier) & '/2016';
let Date_jour_deb = date(VAR01,'DD/MM/YYYY');
let Date_jour_fin = date(VAR02,'DD/MM/YYYY');
set Errormode=0;
For Date_jour= '$(Date_jour_deb)' to '$(Date_jour_fin)'
let Jour= left(date('$(Date_jour)'),5);
let Nom_jour= left(weekday('$(Date_jour)'),2);
let FieldN= '$(Nom_jour)'&' '&'$(Jour)';
[Feuil1]:
LOAD
[Code ligne],
[Libellé ligne],
[Libellé voie],
[PK début],
[PK fin],
[Durée],
[Début],
[Fin],
[Commentaire],
[$(FieldN)] as QteCharge,
'$(Jour)' as Jour
[Type ressource],
[Statut1],
[Commentaire affectation]
FROM [lib://Desktop/Reprise_Qlik_121_$(MoisFichier).xlsx]
(ooxml, embedded labels, table is Feuil1);
Utilisez Capitalize
let Nom_jour= Capitalize(left(weekday('$(Date_jour)'),2));
Merci encore et encore !!!
ça fonctionne mais ..... je découvre un autre souci maintenant ! Je vais rechercher de mon côté avant de vous solliciter car cela vient de ma date de fin !!!! En effet, je la bloque au 31 dans ma variable VAR02 alors que pour un mois comme juin par exemple le mois n'a que 30 jours et je ne sais pas pourquoi mais Qlik récupère le [01/07] avec une date_jour_fin au 01/07/2016 alors que VAR02 est bien enregistrée au 31/06/2016 ???? Pour moi il faut absolument que quelque soit le mois la date_jour_fin soit le dernier jour du mois. Je vais chercher comment faire. Encore une fois merci pour votre aide.
Bonjour
En effet j'avais vu dans tes variables que tu prenais date début 01 date de fin 31
il faut utiliser monthend() et monthstart()
ton champ MoisFichier te sort il un format Date 'MM/YYYY' ou juste un numéro de type 01, 06, 09, etc ?
çà donnerait peut être çà : a essayer/adapter pas sur de la syntaxe;
si format date :
let VAR01='01/' & (MoisFichier) & '/2016';
let VAR02='31/' & (MoisFichier) & '/2016';
let VAR01=monthstart(MoisFichier);
let VAR02=monthend(MoisFichier);
si format Num :
let VAR01=monthstart(month(MoisFichier)) &'/2016';
let VAR02=monthend(month(MoisFichier)) &'/2016';
Bonjour Merci !!!
J'étais justement en train de lire le fascicule sur les fonctions Monthstart et Monthend. Je viens d'écrire ceci et ça marche très très bien !!!
Encore merci
let VAR01='01/'&(MoisFichier) &'/2016';
let VAR02=date(VAR011,'DD/MM/YYYY');
let Date_jour_deb = monthstart(VAR02);
let Date_jour_fin = monthend(VAR02);
set Errormode=0;
For Date_jour= '$(Date_jour_deb)' to '$(Date_jour_fin)'
let Jour= left(date('$(Date_jour)'),5);