Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
J'ai un fichier qui vient chaque mois de Janvier à Décembre. Et chaque fois que le fichier arrive, je dois le charger dans Qlik Sense. Parmi les champs du fichier il n'y a pas de champ date. Alors comment m'arranger de sorte à reconnaître les fichiers de chaque mois après chargement?
Cordialement,
Bonjour,
si la date du fichier est incluse quelque part dans le nom du fichier, tu peux utiliser plusieurs fonctions pour extraire cette partie et l'inserer dans un champ lors du chargement.
Exemple: left(), right(), textbetween() et plein d'autre, cela dépendra de tes nom de fichiers.
si tu n'a meme pas d'indication sur le nom de fichier, tu peux utiliser Date(Filetime()) qui te donnera la date de dernière sauvegarde du fichier.
je suis sur qu'il y a aussi pas mal d'autre solutions pour le faire
si tu peux donner un exemple de nom de fichier, on pourra aller plus en détails
Tes solutions sont vraiment bonnes. Les noms des fichiers sont datés exemple:
Nomdufichier1_012017
Nomdufichier2_022017
etc.
dans ce cas le plus simple c'est de faire ceci:
pour extraire la date du nom:
right(FileName(),6)
pour transformer ceci en date, tu peux encore faire ceci:
Date(Date#(right(FileName(),6),'MMYYYY'),'MMYYYY')
pour intégrer tout ca dans ton load:
table_name:
load
.
. ,
Date(Date#(right(FileName(),6),'MMYYYY'),'MMYYYY') as Doc_date,
.
.
FROM ...
essaye et dit moi
Exemple de fichier:
VENTE:
LOAD
VILLE,
STATUS,
SOLDE,
MONTANT
FROM [lib://Connexion/Sales_012017.xlsx]
(ooxml, embedded labels, table is Feuil1);
Je vois que je peux utiliser FileBaseName() pour extraire le nom du fichier.
Super Youssef !!
Mais c'est plutôt FileBaseName() qui marche à la place de FileName() car problème avec l'extension du fichier.
oui j'avais complètement oublié l'extension du fichier qui du coup décale complètement la fonction right..
en tout ravi d'avoir aidé.
si tout est bon pour toi n'oublie pas de fermer ton topic en marquant les réponses utiles et correctes.
Bon courage
bonjour
Du coup avec ta question précédente çà donne çà
VENTE:
LOAD
VILLE,
STATUS,
SOLDE,
MONTANT,
Date(Date#(right(FileBaseName(),6),'MMYYYY'),'MMYYYY') as Doc_date
// te rajoutera un champs Doc_date dans chaque import
FROM [lib://Connexion/Sales_*.xlsx] // Chargera tous les fichiers commençant par "Sales_"
(ooxml, embedded labels, table is Feuil1);
Merci Bruno, un problème se pose.
EN utilisant Sales_*.xlsx, tous les fichiers (Sales_012017, Sales_022017, etc) se chargeront dans une même table et la valeur du champ date Doc_date sera commune à toutes les autres tables.
Du coup cette technique ne marchera que si et seulement si le dossier ne contient qu'un seul fichier Sale chaque fois.